summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2015-03-12 10:47:49 +0100
committerCamil Staps2015-03-12 10:47:49 +0100
commit4e4a3d397f021ccfed0008878f8f6eb9a3da035e (patch)
tree77b01684db3e29e4d7ab5c4c398cb97a4ea55fc0
parentweek 5 (diff)
Only takewhile to be done
-rw-r--r--week5/camil/Origami.icl21
1 files changed, 21 insertions, 0 deletions
diff --git a/week5/camil/Origami.icl b/week5/camil/Origami.icl
new file mode 100644
index 0000000..abd3cae
--- /dev/null
+++ b/week5/camil/Origami.icl
@@ -0,0 +1,21 @@
+module Origami
+
+import StdEnv
+
+Start = and
+ [ sum` [1 .. 5] == sum [1 .. 5]
+ , prod` [1 .. 5] == prod [1 .. 5]
+ , flatten` [[],[1],[1,2],[1,2,3]] == flatten [[],[1],[1,2],[1,2,3]]
+ , reverse` [1 .. 5] == reverse [1 .. 5]
+ , takeWhile` ((<>) 0) [1,2,3,0,4,5,6] == takeWhile ((<>) 0) [1,2,3,0,4,5,6]
+ , maxList` [1 .. 5] == maxList [1 .. 5]
+ ]
+
+sum` = foldr (+) 0
+prod` = foldr (*) 1
+flatten` = foldr (++) []
+length` = foldl (\l e = l + 1) 0
+reverse` = foldl (\xs x = [x:xs]) []
+takeWhile` = takeWhile
+maxList` [] = undef
+maxList` [x:xs] = foldr max x xs