summaryrefslogtreecommitdiff
path: root/week3/mart/StdSortList.icl
blob: 2c8ad3ff29702c004a66bcc2ca44839fc4778025 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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