Only takewhile to be done
authorCamil Staps <info@camilstaps.nl>
Thu, 12 Mar 2015 09:47:49 +0000 (10:47 +0100)
committerCamil Staps <info@camilstaps.nl>
Thu, 12 Mar 2015 09:47:49 +0000 (10:47 +0100)
week5/camil/Origami.icl [new file with mode: 0644]

diff --git a/week5/camil/Origami.icl b/week5/camil/Origami.icl
new file mode 100644 (file)
index 0000000..abd3cae
--- /dev/null
@@ -0,0 +1,21 @@
+module Origami\r
+\r
+import StdEnv\r
+\r
+Start                  = and\r
+                                 [ sum`       [1 .. 5]                 == sum       [1 .. 5]\r
+                                 , prod`      [1 .. 5]                 == prod      [1 .. 5]\r
+                                 , flatten`   [[],[1],[1,2],[1,2,3]]   == flatten   [[],[1],[1,2],[1,2,3]]\r
+                                 , reverse`   [1 .. 5]                 == reverse   [1 .. 5]\r
+                                 , takeWhile` ((<>) 0) [1,2,3,0,4,5,6] == takeWhile ((<>) 0) [1,2,3,0,4,5,6]\r
+                                 , maxList`   [1 .. 5]                 == maxList   [1 .. 5]\r
+                                 ]\r
+\r
+sum`                   = foldr (+) 0\r
+prod`                  = foldr (*) 1\r
+flatten`               = foldr (++) []\r
+length`                        = foldl (\l e = l + 1) 0\r
+reverse`               = foldl (\xs x = [x:xs]) []\r
+takeWhile`             = takeWhile\r
+maxList` []            = undef\r
+maxList` [x:xs]                = foldr max x xs\r