#| -*-Scheme-*-
-$Id: random.scm,v 14.7 1993/10/14 09:44:21 cph Exp $
+$Id: random.scm,v 14.8 1993/10/14 10:13:58 cph Exp $
Copyright (c) 1993 Massachusetts Institute of Technology
(flo:/ element b.)))))
\f
(define (make-random-state #!optional state)
- (let ((state (if (default-object? state) #f state))
- (new-state
- (lambda (n)
- (initial-random-state (congruential-rng (+ n 123456789))))))
- (cond ((eq? #t state)
- (new-state (real-time-clock)))
- ((exact-integer? state)
- ;; This case is for upwards compatibility.
- (new-state state))
- (else
- (let ((state (guarantee-random-state state 'MAKE-RANDOM-STATE)))
- (%make-random-state
- (random-state-index state)
- (random-state-borrow state)
- (vector-copy (random-state-vector state))))))))
+ (let ((state (if (default-object? state) #f state)))
+ (if (or (eq? #t state) (exact-integer? state))
+ (initial-random-state
+ (congruential-rng (+ (real-time-clock) 123456789)))
+ (let ((state (guarantee-random-state state 'MAKE-RANDOM-STATE)))
+ (%make-random-state
+ (random-state-index state)
+ (random-state-borrow state)
+ (vector-copy (random-state-vector state)))))))
(define (initial-random-state generate-random-seed)
;; The numbers returned by GENERATE-RANDOM-SEED are not critical.