summary refs log tree commit diff
path: root/mew.scm
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2022-11-26 17:47:30 +0100
committerLeah Neukirchen <leah@vuxu.org>2022-11-26 17:47:30 +0100
commitb33a8d20e524ecf57568a3af8e814a7fb3f7dd62 (patch)
treed65285cdcf2697355b78748ebfaf174d959854d4 /mew.scm
parent3360494dad789393fad412207dfc0b497dac887f (diff)
downloadmew-b33a8d20e524ecf57568a3af8e814a7fb3f7dd62.tar.gz
mew-b33a8d20e524ecf57568a3af8e814a7fb3f7dd62.tar.xz
mew-b33a8d20e524ecf57568a3af8e814a7fb3f7dd62.zip
add rand
Diffstat (limited to 'mew.scm')
-rw-r--r--mew.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/mew.scm b/mew.scm
index db53e87..1c1674c 100644
--- a/mew.scm
+++ b/mew.scm
@@ -16,7 +16,7 @@
      negate
      odometer one-of op op*
      per prn proj puts
-     range rep
+     rand range rep
      scan scan-right sing? search seq set set-at str slurp
      tally-accumulator tbl time
      while
@@ -41,6 +41,7 @@
           (chicken condition)
           (chicken module)
           (chicken port)
+          (chicken random)
           (chicken repl)
           (chicken syntax)
           srfi-17
@@ -394,6 +395,12 @@
   (define (void? x)
     (eq? x (void)))
 
+  (define rand
+    (case-lambda
+      (()    (pseudo-random-real))
+      ((n)   (pseudo-random-integer n))
+      ((n m) (+ n (pseudo-random-integer (- m n))))))
+
   (define range
     (case-lambda
       (()               (make-range-generator 0 +inf.0 1))
@@ -1023,4 +1030,6 @@
                      (str (substring old-prompt 0 2)
                           "^_^;"
                           (substring old-prompt 2))))))
+
+  (set-pseudo-random-seed! (random-bytes))
 )