|
|
1.1 root 1: structure Tree : FORMULA =
2: struct
3: datatype formula = NUM of int
4: | CELLREF of formula * formula
5: | BINOP of (int*int->int) * formula * formula
6: | IF of formula * formula * formula
7: fun eval f a =
8: let fun g (NUM i) = i
9: | g (CELLREF(x,y)) = a sub (g x) sub (g y)
10: | g (BINOP(p,x,y)) = p(g x, g y)
11: | g (IF(x,y,z)) = if g x <> 0 then g y else g z
12: in g f
13: end
14: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.