diff options
| author | Mart Lubbers | 2015-04-16 21:22:20 +0200 | 
|---|---|---|
| committer | Mart Lubbers | 2015-04-16 21:22:20 +0200 | 
| commit | 6f604b19d3f5966e5c1d7c4fdf3703bd6ff0861c (patch) | |
| tree | 96d580507249f7f58368476d9113007d4afcd748 /fp1/week5 | |
| parent | Added student numbers (diff) | |
update to fp2 yay, public and licence
Diffstat (limited to 'fp1/week5')
| -rw-r--r-- | fp1/week5/camil/Origami.icl | 24 | ||||
| -rw-r--r-- | fp1/week5/mart/Origami.icl | 16 | 
2 files changed, 40 insertions, 0 deletions
| diff --git a/fp1/week5/camil/Origami.icl b/fp1/week5/camil/Origami.icl new file mode 100644 index 0000000..74362a9 --- /dev/null +++ b/fp1/week5/camil/Origami.icl @@ -0,0 +1,24 @@ +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` p xs
 +	| p (xs!!0)	= take (maxList [i \\ i <- [0..length xs-1] | foldr (&&) True [p (xs!!j) \\ j <- [0..i]]] + 1) xs
 +	| otherwise	= []
 +maxList` []		= undef
 +maxList` [x:xs]		= foldr max x xs
 diff --git a/fp1/week5/mart/Origami.icl b/fp1/week5/mart/Origami.icl new file mode 100644 index 0000000..180a119 --- /dev/null +++ b/fp1/week5/mart/Origami.icl @@ -0,0 +1,16 @@ +/**
 + * Mart Lubbers, s4109503
 + * Camil Staps, s4498062
 + */
 +
 +module Origami
 +
 +import StdEnv
 +
 +sum` = foldr (+) 0
 +prod` = foldr (*) 1
 +flatten` = foldr (++) []
 +length` = foldr (\x l=l+1) 0
 +reverse` = foldl (\xs x=[x:xs]) []
 +takeWhile` p = foldr (\x xs=if (p x) [x:xs] []) []
 +maxList` [x:xs] = foldr max x xs
 | 
