SICP 問題 3.81
(use srfi-19) (define (rand-update x) (modulo (+ (* x 1103515245) 12345) 2147483647)) ;; 命令のストリームを引数にとる (define (rand stream) (define (randoming s) (if (number? s) (random-update (time-nanosecond (current-time))) (random-update s))) (define random-stream (if (stream-null? stream) the-empty-stream (let ((s1 (stream-car stream))) (cons-stream (if (number? s1) (rand-update s1) (rand-update (time-nanosecond (current-time)))) (stream-map randoming random-stream))))) random-stream)