:: Set = Set [Dynamic]\r
\r
instance zero Set\r
-where zero = abort "zero instance voor Set nog niet geimplementeerd.\n"\r
+where zero = Set []\r
\r
instance toString Set\r
-where toString a = abort "toString instance voor Set nog niet geimplementeerd.\n"\r
-\r
+where toString (Set a) = abort "toString not implemented"\r
+ \r
instance == Set\r
where == a b = abort "== instance voor Set nog niet geimplementeerd.\n"\r
\r
toSet :: a -> Set | Set a\r
-toSet a = abort "toSet nog niet geimplementeerd.\n"\r
+toSet a = Set [dynamic a]\r
\r
nrOfElts :: Set -> Int\r
-nrOfElts a = abort "nrOfElts nog niet geimplementeerd.\n"\r
+nrOfElts (Set a) = length a\r
\r
isEmptySet :: Set -> Bool\r
-isEmptySet a = abort "isEmptySet nog niet geimplementeerd.\n"\r
+isEmptySet (Set []) = True\r
+isEmptySet _ = False\r
\r
memberOfSet :: a Set -> Bool | Set a\r
-memberOfSet x a = abort "memberOfSet nog niet geimplementeerd.\n"\r
+memberOfSet _ (Set []) = False\r
+memberOfSet x (Set [y:xs])\r
+| isEqual x y = True\r
+| otherwise = memberOfSet x xs\r
\r
isSubset :: Set Set -> Bool\r
isSubset a b = abort "isSubset nog niet geimplementeerd.\n"\r
\r
without :: Set Set -> Set\r
without a b = abort "without nog niet geimplementeerd.\n"\r
+\r
+Start :: Set\r
+Start = toSet 1\r