summaryrefslogtreecommitdiff
path: root/fp2/week1/mart/RandomGetallen.icl
diff options
context:
space:
mode:
Diffstat (limited to 'fp2/week1/mart/RandomGetallen.icl')
-rw-r--r--fp2/week1/mart/RandomGetallen.icl33
1 files changed, 0 insertions, 33 deletions
diff --git a/fp2/week1/mart/RandomGetallen.icl b/fp2/week1/mart/RandomGetallen.icl
deleted file mode 100644
index b756c91..0000000
--- a/fp2/week1/mart/RandomGetallen.icl
+++ /dev/null
@@ -1,33 +0,0 @@
-implementation module RandomGetallen
-
-import StdEnv, Random
-
-//Start :: *World -> ([Int],*World)
-//Start world
-//# (rs,world) = getNewRandomSeed world
-//= (shuffle [1..10] rs,world)
-
-
-Start = shuffle [1..10] nullRandomSeed
-
-random_n :: Int RandomSeed -> ([Int],RandomSeed)
-random_n n seed = seqList (repeatn n random) seed
-
-random_inf :: RandomSeed -> [Int]
-random_inf seed = iterateSt random seed
-
-iterateSt :: (s -> (a,s)) s -> [a]
-iterateSt f s = [a : iterateSt f s`]
-where
- (a,s`) = f s
-
-shuffle :: [a] RandomSeed -> [a]
-shuffle xs seed = (perms xs) !! ((fst (random seed)) rem (fac (length xs)))
-
-fac :: Int -> Int
-fac 0 = 1
-fac n = n * fac (n-1)
-
-perms :: [a] -> [[a]]
-perms [] = [[]]
-perms xs = [[xs!!i : xs`] \\ i <- [0..length xs - 1] , xs` <- perms (take i xs ++ drop (i+1) xs)]