Backport from sid to buster
[hcoop/debian/mlton.git] / regression / unary.sml
CommitLineData
7f918cf1
CE
1datatype num = Z | S of num
2
3val rec plus =
4 fn (n, Z) => n
5 | (n, S m) => S (plus (n,m))
6
7val zero = Z
8val one = S Z
9val two = plus (one,one)
10
11val rec times =
12 fn (_, Z) => Z
13 | (n, S m) => plus (n, times (n,m))
14
15val square = fn n => times (n,n)
16
17val four = square two
18
19val sixteen = square four
20
21val two56 = square sixteen
22
23val rec fib =
24 fn Z => Z
25 | S Z => S Z
26 | S (S n) => plus (fib (S n), fib n)
27
28val x = fib (S Z)
29