#!/usr/bin/guile \ -e main -s !# ;;; Copyright 2005 Daniel Cer (daniel.cer@cs.colorado.edu) ;;; ;;; This work is licensed under the Creative Commons Attribution-NonCommercial- ;;; ShareAlike License. To view a copy of this license, visit ;;; http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to ;;; Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, ;;; 94105, USA. (define randu_state 1) (define (randu) (begin (set! randu_state (modulo (* 65539 randu_state) (integer-expt 2 31))) randu_state)) (define (main args) (if (not (equal? (length args) 2)) (display (string-append "Usage:\n\t" (car args) " (number of values to generate*)\n" "\n* '0' -> unlimited")) (let ((max_iter (string->number (cadr args)))) (if (< max_iter 0) (display "Error: parameter must be non-negative") (let display-values ((i max_iter)) (if (or (> i 0) (equal? max_iter 0)) (begin (display (randu)) (newline) (display-values (- i 1)))))))))