V10/cmd/sml/doc/examples/spread/semant.sml

structure Semant : FORMULA =
struct
     type formula = int array array -> int
     fun NUM i = fn a => i
     fun CELLREF (e1,e2) = fn a => a sub e1 a sub e2 a
     fun BINOP (f,e1,e2) = fn a => f(e1 a, e2 a)
     fun IF (e1,e2,e3) = fn a => if e1 a <> 0 then e2 a else e3 a
     val eval = fn x => x
end