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"