summaryrefslogtreecommitdiff
path: root/fp2/week3/mart/StdDynSet.icl
diff options
context:
space:
mode:
authorMart Lubbers2015-04-29 20:57:05 +0200
committerMart Lubbers2015-04-29 20:57:05 +0200
commit3216cc4bc00dde60098f7735af317a791e714494 (patch)
treebcde3c73991c811aa49839cb98b0d896d61d7ab8 /fp2/week3/mart/StdDynSet.icl
parentGetallenRaden done:) (diff)
try for week3 part 2
Diffstat (limited to 'fp2/week3/mart/StdDynSet.icl')
-rw-r--r--fp2/week3/mart/StdDynSet.icl21
1 files changed, 14 insertions, 7 deletions
diff --git a/fp2/week3/mart/StdDynSet.icl b/fp2/week3/mart/StdDynSet.icl
index ee43631..ffc2590 100644
--- a/fp2/week3/mart/StdDynSet.icl
+++ b/fp2/week3/mart/StdDynSet.icl
@@ -8,25 +8,29 @@ class Set a | TC, ==, toString a
:: Set = Set [Dynamic]
instance zero Set
-where zero = abort "zero instance voor Set nog niet geimplementeerd.\n"
+where zero = Set []
instance toString Set
-where toString a = abort "toString instance voor Set nog niet geimplementeerd.\n"
-
+where toString (Set a) = abort "toString not implemented"
+
instance == Set
where == a b = abort "== instance voor Set nog niet geimplementeerd.\n"
toSet :: a -> Set | Set a
-toSet a = abort "toSet nog niet geimplementeerd.\n"
+toSet a = Set [dynamic a]
nrOfElts :: Set -> Int
-nrOfElts a = abort "nrOfElts nog niet geimplementeerd.\n"
+nrOfElts (Set a) = length a
isEmptySet :: Set -> Bool
-isEmptySet a = abort "isEmptySet nog niet geimplementeerd.\n"
+isEmptySet (Set []) = True
+isEmptySet _ = False
memberOfSet :: a Set -> Bool | Set a
-memberOfSet x a = abort "memberOfSet nog niet geimplementeerd.\n"
+memberOfSet _ (Set []) = False
+memberOfSet x (Set [y:xs])
+| isEqual x y = True
+| otherwise = memberOfSet x xs
isSubset :: Set Set -> Bool
isSubset a b = abort "isSubset nog niet geimplementeerd.\n"
@@ -42,3 +46,6 @@ intersection a b = abort "intersection nog niet geimplementeerd.\n"
without :: Set Set -> Set
without a b = abort "without nog niet geimplementeerd.\n"
+
+Start :: Set
+Start = toSet 1