Mercurial > urweb
changeset 2277:6bce459ca581
Add new files missing from previous commit.
author | Ziv Scully <ziv@mit.edu> |
---|---|
date | Mon, 09 Nov 2015 13:38:04 -0500 |
parents | c05f9a5e0f0f |
children | b7615e0ac4b0 |
files | src/list_key_fn.sml src/pair_key_fn.sml |
diffstat | 2 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/list_key_fn.sml Mon Nov 09 13:38:04 2015 -0500 @@ -0,0 +1,14 @@ +functor ListKeyFn(K : ORD_KEY) + : ORD_KEY where type ord_key = K.ord_key list = struct + +type ord_key = K.ord_key list + +val rec compare = + fn ([], []) => EQUAL + | ([], _) => LESS + | (_, []) => GREATER + | (x::xs, y::ys) => case K.compare (x, y) of + EQUAL => compare (xs, ys) + | ord => ord + +end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pair_key_fn.sml Mon Nov 09 13:38:04 2015 -0500 @@ -0,0 +1,12 @@ +functor PairKeyFn (structure I : ORD_KEY + structure J : ORD_KEY) + : ORD_KEY where type ord_key = I.ord_key * J.ord_key = struct + +type ord_key = I.ord_key * J.ord_key + +fun compare ((i1, j1), (i2, j2)) = + case I.compare (i1, i2) of + EQUAL => J.compare (j1, j2) + | ord => ord + +end