summary refs log tree commit diff
path: root/mew.scm
diff options
context:
space:
mode:
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))
 )