diff options
Diffstat (limited to 'fp2/week2')
| -rw-r--r-- | fp2/week2/ReturnEnBind.icl | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/fp2/week2/ReturnEnBind.icl b/fp2/week2/ReturnEnBind.icl new file mode 100644 index 0000000..0bece5f --- /dev/null +++ b/fp2/week2/ReturnEnBind.icl @@ -0,0 +1,19 @@ +module ReturnEnBind
 +
 +import StdEnv, Random
 +
 +Start = 42
 +
 +(bind1) infix 0 :: (St s a) (a -> (St s b)) -> St s b
 +//(bind1) infix 0 :: (s -> *(a,s)) (a -> (a -> *(a,s))) -> (s -> *(b,s))
 +(bind1) f1 f2 = \st0 f2 (fst (f1 st0) (snd (f1 st0))
 +//	(r, st1) = f1 st0
 +//(bind) f f2 :== \st0 -> let (r,st1) = f st0
 +//	 in f2 r st1
 +
 +
 +som2 :: (RandomSeed -> (Int,RandomSeed))
 +som2 ...
 +
 +seqList1 :: [St s a] -> St s [a]
 +seqList1 ...
 | 
