|September 22, 1999||Strong Typing||Slide #31|
Suppose we're trying to sort a one-element list [x] .
We split it with split into ([x], ).
Then we try to sort these two lists and merge the sorted lists back together.
Sorting  is OK.
Sorting [x] puts us into an infinite loop.
Solution: Add a clause
... | sort [x] = [x] ...
val sort = fn : int list -> int list
We could make it a little better:
val sort = fn : ('a * 'a -> bool) -> 'a list -> 'a list
|Next||Copyright © 1999 M-J. Dominus|