File: unary.sml

package info (click to toggle)
mlton 20130715-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 60,900 kB
  • ctags: 69,386
  • sloc: xml: 34,418; ansic: 17,399; lisp: 2,879; makefile: 1,605; sh: 1,254; pascal: 256; python: 143; asm: 97
file content (29 lines) | stat: -rw-r--r-- 441 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
datatype num = Z | S of num

val rec plus =
   fn (n, Z) => n
    | (n, S m) => S (plus (n,m))

val zero = Z
val one = S Z
val two = plus (one,one)

val rec times =
   fn (_, Z) => Z
    | (n, S m) => plus (n, times (n,m))

val square = fn n => times (n,n)

val four = square two

val sixteen = square four

val two56 = square sixteen

val rec fib =
   fn Z => Z
    | S Z => S Z
    | S (S n) => plus (fib (S n), fib n)

val x = fib (S Z)