問題3.6
;ここでは、精度は必要ないので線形合同法をストレートに使う。 (define random-init 8) (define (rand-update x) (remainder (+ (* 3 x) 5) 13)) (define rand (let ((x random-init)) (lambda (op) (cond ((eq? op 'generate) (begin (set! x (rand-update x)) x)) ((eq? op 'reset) (lambda (val) (set! x val) x)) (else (error "please set generate or reset"))))))