diff options
Diffstat (limited to 'fp2/week1/camil/Random.icl')
-rw-r--r-- | fp2/week1/camil/Random.icl | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/fp2/week1/camil/Random.icl b/fp2/week1/camil/Random.icl deleted file mode 100644 index b6e0768..0000000 --- a/fp2/week1/camil/Random.icl +++ /dev/null @@ -1,20 +0,0 @@ -implementation module Random - -import StdFile, StdList, StdMisc, StdArray, Random - -:: RandomSeed :== Int - -nullRandomSeed :: RandomSeed -nullRandomSeed = 0 - -getNewRandomSeed :: !*env -> (!RandomSeed, !*env) | FileSystem env -getNewRandomSeed env -# (ok, src, env) = sfopen "/dev/urandom" FReadData env -| not ok => abort "could not open /dev/urandom" -# (bytes, src) = sfreads src 4 - seed = foldl (\x y->(x<<8)+toInt y) 0 [c \\ c<-:bytes] -| otherwise => (seed, env) - -random :: !RandomSeed -> .(!Int, !RandomSeed) -random seed = (seed>>16 bitand 0xFFFF, seed*0x08088405+1) - |