author | haftmann |
Wed, 15 Nov 2006 17:05:37 +0100 | |
changeset 21378 | cedfce6fc725 |
parent 21190 | 08ec81dfc7fb |
child 21993 | 4b802a9e0738 |
permissions | -rw-r--r-- |
structure ROOT = struct structure Nat = struct datatype nat = Zero_nat | Suc of nat; fun less_nat Zero_nat (Suc n) = true | less_nat n Zero_nat = false | less_nat (Suc m) (Suc n) = less_nat m n; fun minus_nat (Suc m) (Suc n) = minus_nat m n | minus_nat Zero_nat n = Zero_nat | minus_nat y Zero_nat = y; end; (*struct Nat*) structure Codegen = struct fun pick ((k, v) :: xs) n = (if Nat.less_nat n k then v else pick xs (Nat.minus_nat n k)); end; (*struct Codegen*) end; (*struct ROOT*)