blob: 74b9492e8ed739fbd94a21ed0626826d26e8651f (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
(define-module (language python module _random)
#:use-module (oop pf-objects)
#:use-module (language python string)
#:export (Random))
(define-syntax-rule (aif it p . l) (let ((it p)) (if p . l)))
(define-python-class Random ()
(define seed
(lambda (self s)
(rawset self '_state (seed->random-state (format #f "~a" s)))))
(define setstate
(lambda (self s)
(rawset self '_state s)))
(define getstate
(lambda (self)
(aif it (rawref self '_state)
it
(let ((ret (random-state-from-platform)))
(set self '_state ret)
ret))))
(define getrandbits '(no))
(define random
(lambda (self)
(set! *random-state* (getstate self))
(let ((x (random:uniform)))
(rawset self '_state *random-state*)
x))))
|