(define grnd (let* ((f #f)(ig (rand31 24435))(m 0)(sc (+ 0. (expt 2 -30))) (gf (lambda () (- (* (ig) sc) 1)))) (lambda () (if f (begin (set! f #f) m) (let xx () (let* ((x (gf))(y (gf))(s (+ (* x x)(* y y)))) (if (> s 1.) (xx) (let ((r (sqrt (/ (* -2 (log s)) s))))(set! m (* x r)) (set! f #t) (* y r)))))))))