diff options
-rw-r--r-- | assignment-3/genericMap.icl | 13 | ||||
-rw-r--r-- | assignment-3/serialize3Native.icl | 20 | ||||
-rw-r--r-- | assignment-3/serialize3Start.icl | 20 |
3 files changed, 48 insertions, 5 deletions
diff --git a/assignment-3/genericMap.icl b/assignment-3/genericMap.icl index f2f195b..6ea1bf4 100644 --- a/assignment-3/genericMap.icl +++ b/assignment-3/genericMap.icl @@ -23,12 +23,15 @@ l = [1..7] // Part 1
Start = gMap{|*->*|} fac t
-//Start = gMap{|*->*|} (\i -> (i, fac i)) l
-//Start = gMap{|*->*->*|} (gMap{|*->*|} fac) (gMap{|*->*|} fac) (l,t)
+ // (Bin (Bin Leaf 1 Leaf) 2 (Bin (Bin Leaf 3 Leaf) 5 Leaf))
+Start = gMap{|*->*|} (\i -> (i, fac i)) l
+ // [(1,1),(2,2),(3,3),(4,5),(5,8),(6,13),(7,21)]
+Start = gMap{|*->*->*|} (gMap{|*->*|} fac) (gMap{|*->*|} fac) (l,t)
+ // ([1,2,3,5,8,13,21],(Bin (Bin Leaf 1 Leaf) 2 (Bin (Bin Leaf 3 Leaf) 5 Leaf)))
// Part 2
-//Start = gEq{|*|} [1,2] [1,2]
-//Start = gEq{|*|} [1,2] [2,3]
-//Start = gEq{|*->*|} (\a b -> not (a < b || b < a)) [1,2] [2,3]
+Start = gEq{|*|} [1,2] [1,2] // True
+Start = gEq{|*|} [1,2] [2,3] // False
+Start = gEq{|*->*|} (\a b -> not (a < b || b < a)) [1,2] [2,3] // False
fac n = let fs = [1:1:[(fs!!(i-1)) + (fs!!(i-2)) \\ i <- [2..]]] in fs !! n
diff --git a/assignment-3/serialize3Native.icl b/assignment-3/serialize3Native.icl index 3f0461b..3bb21c3 100644 --- a/assignment-3/serialize3Native.icl +++ b/assignment-3/serialize3Native.icl @@ -108,3 +108,23 @@ test a = s = write{|*|} a ["\n"] r = read{|*|} s jr = fromJust r + +/* +Oke, write produces: True +Oke, write produces: False +Oke, write produces: 0 +Oke, write produces: 123 +Oke, write produces: -36 +Oke, write produces: (_Cons 42 _Nil) +Oke, write produces: (_Cons 0 (_Cons 1 (_Cons 2 (_Cons 3 (_Cons 4 _Nil))))) +Oke, write produces: (_Cons (_Cons True _Nil) (_Cons _Nil _Nil)) +Oke, write produces: (_Cons (_Cons (_Cons 1 _Nil) _Nil) (_Cons (_Cons (_Cons 2 _Nil) (_Cons (_Cons 3 (_Cons 4 _Nil)) _Nil)) (_Cons (_Cons _Nil _Nil) _Nil))) +Oke, write produces: (Bin Leaf True Leaf) +Oke, write produces: (_Cons (Bin (Bin Leaf (_Cons 1 _Nil) Leaf) (_Cons 2 _Nil) (Bin Leaf (_Cons 3 _Nil) (Bin Leaf (_Cons 4 (_Cons 5 _Nil)) Leaf))) _Nil) +Oke, write produces: (_Cons (Bin (Bin Leaf (_Cons 1 _Nil) Leaf) (_Cons 2 _Nil) (Bin Leaf (_Cons 3 _Nil) (Bin (Bin Leaf (_Cons 4 (_Cons 5 _Nil)) Leaf) (_Cons 6 (_Cons 7 _Nil)) (Bin Leaf (_Cons 8 (_Cons 9 _Nil)) Leaf)))) _Nil) +Oke, write produces: Head +Oke, write produces: Tail +Oke, write produces: (7,True) +Oke, write produces: (Head,(7,(_Cons Tail _Nil))) +End of the tests. +*/ diff --git a/assignment-3/serialize3Start.icl b/assignment-3/serialize3Start.icl index cfc09c3..962716a 100644 --- a/assignment-3/serialize3Start.icl +++ b/assignment-3/serialize3Start.icl @@ -241,3 +241,23 @@ test a = s = write a ["\n"]
r = read s
jr = fromJust r
+
+/*
+Oke, write produces: True
+Oke, write produces: False
+Oke, write produces: 0
+Oke, write produces: 123
+Oke, write produces: -36
+Oke, write produces: (Cons 42 Nil)
+Oke, write produces: (Cons 0 (Cons 1 (Cons 2 (Cons 3 (Cons 4 Nil)))))
+Oke, write produces: (Cons (Cons True Nil) (Cons Nil Nil))
+Oke, write produces: (Cons (Cons (Cons 1 Nil) Nil) (Cons (Cons (Cons 2 Nil) (Cons (Cons 3 (Cons 4 Nil)) Nil)) (Cons (Cons Nil Nil) Nil)))
+Oke, write produces: (Bin Leaf True Leaf)
+Oke, write produces: (Cons (Bin (Bin Leaf (Cons 1 Nil) Leaf) (Cons 2 Nil) (Bin Leaf (Cons 3 Nil) (Bin Leaf (Cons 4 (Cons 5 Nil)) Leaf))) Nil)
+Oke, write produces: (Cons (Bin (Bin Leaf (Cons 1 Nil) Leaf) (Cons 2 Nil) (Bin Leaf (Cons 3 Nil) (Bin (Bin Leaf (Cons 4 (Cons 5 Nil)) Leaf) (Cons 6 (Cons 7 Nil)) (Bin Leaf (Cons 8 (Cons 9 Nil)) Leaf)))) Nil)
+Oke, write produces: Head
+Oke, write produces: Tail
+Oke, write produces: (7,True)
+Oke, write produces: (Head,(7,(Cons Tail Nil)))
+End of the tests.
+*/
|