diff options
Diffstat (limited to 'week3/mart/StdSortList.icl')
-rw-r--r-- | week3/mart/StdSortList.icl | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/week3/mart/StdSortList.icl b/week3/mart/StdSortList.icl new file mode 100644 index 0000000..2c8ad3f --- /dev/null +++ b/week3/mart/StdSortList.icl @@ -0,0 +1,43 @@ +implementation module StdSortList
+
+import StdEnv
+
+:: SortList a = SortList (SortList a, a, SortList a) | Empty
+
+newSortList :: SortList a
+newSortList = Empty
+
+memberSort :: a (SortList a) -> Bool | Eq, Ord a
+memberSort x Empty = False
+memberSort x (le, el, gr)
+| x == e = True
+| x < el = memberSort x le
+| otherwise = memberSort x gr
+
+insertSort :: a (SortList a) -> SortList a | Ord a
+memberSort x Empty = Sortlist (Empty, x, Empty)
+memberSort x (le, el, gr)
+
+removeFirst :: a (SortList a) -> SortList a | Eq, Ord a
+removeFirst e ([], _)_ = ([], _)
+
+removeAll :: a (SortList a) -> SortList a
+removeAll _ _ = Empty
+
+elements :: (SortList a) -> [a]
+elements _ = []
+
+count :: (SortList a) -> Int
+count _ = 0
+
+minimum :: (SortList a) -> a
+minimum _ = 0
+
+maximum :: (SortList a) -> a
+maximum _ = 0
+
+mergeSortList :: (SortList a) (SortList b) -> (SortList a)
+mergeSortList _ _ = Empty
+
+Start :: String
+Start = newSortList
|