From ab4554fcd8722f2ee8ac7626514e5b0edf436e20 Mon Sep 17 00:00:00 2001 From: Oliver Payne Date: Thu, 21 Apr 2022 21:18:22 +0100 Subject: [PATCH] Complete exercise 3.6 --- 3_5.rkt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/3_5.rkt b/3_5.rkt index 442de9b..cab04f5 100644 --- a/3_5.rkt +++ b/3_5.rkt @@ -7,11 +7,18 @@ (modulo (+ (* a x) b) m))) (define random-init 7) ;**not in book** + (define rand (let ((x random-init)) - (lambda () - (set! x (rand-update x)) - x))) + (lambda (arg) + (cond ((eq? arg 'reset) + (lambda (seed) + (set! random-init seed))) + ((eq? arg 'generate) + (set! x (rand-update x)) + x) + (else + (error "rand - unknown argument" arg)))))) (define (random-in-range low high) (let ((range (- high low)))