calculator-0.1.4.2: src/Calculator/Evaluator/Func.hs
module Calculator.Evaluator.Func where
--------------------------------------------------------------------------------
import Calculator.Prim.Base (Number)
import Calculator.Prim.Cmd (Cmd(Func))
import Calculator.Prim.Expr (addVar, Bindings, fromConst)
import Calculator.Evaluator.Expr (evalExpr)
--------------------------------------------------------------------------------
mkFun :: Bindings -> Cmd -> (Number -> Number)
mkFun b (Func _ x e) = \v -> fromConst $ evalExpr (addVar (x, v) b) e
mkFun _ _ = error "Making function from invalid cmd"