home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Moscow ML 1.42 / examples / manual / Reduce.sml < prev   
Encoding:
Text File  |  1997-08-18  |  367 b   |  12 lines  |  [TEXT/R*ch]

  1. local open Expr
  2. in
  3.     fun negate (Neg e) = e
  4.       | negate e       = Neg e
  5.     fun reduce (Neg (Neg e))      = e
  6.       | reduce (Neg e)            = negate (reduce e)
  7.       | reduce (Plus (Cst 0, e2)) = reduce e2
  8.       | reduce (Plus (e1, Cst 0)) = reduce e1
  9.       | reduce (Plus (e1, e2))    = Plus (reduce e1, reduce e2)
  10.       | reduce e                  = e
  11. end
  12.