program. 算术简化器 simplify 的递归定义[lp-simplify]

(define (simplify expression)
   (match expression
     ((? integer? n) n)
     ((? symbol? name) name)
     ((operation left right)
      (if (memq operation '(+ *))
          (rewrite operation (simplify left) (simplify right))
          (throw 'invalid-expression expression)))
     (_ (throw 'invalid-expression expression))))