27 lines
469 B
Text
27 lines
469 B
Text
|
structure List : LIST =
|
||
|
struct
|
||
|
|
||
|
val op + = InlineT.DfltInt.+
|
||
|
|
||
|
datatype list = datatype list
|
||
|
|
||
|
exception Empty = Empty
|
||
|
|
||
|
fun last [] = raise Empty
|
||
|
| last [x] = x
|
||
|
| last (_::r) = last r
|
||
|
|
||
|
fun loop ([], []) = EQUAL
|
||
|
| loop ([], _) = LESS
|
||
|
| loop (_, []) = GREATER
|
||
|
| loop (x :: xs, y :: ys) =
|
||
|
(case compare (x, y) of
|
||
|
EQUAL => loop (xs, ys)
|
||
|
| unequal => unequal)
|
||
|
in
|
||
|
loop
|
||
|
end
|
||
|
|
||
|
end (* structure List *)
|
||
|
|