packages feed

calculator 0.1.4.1 → 0.1.4.2

raw patch · 2 files changed

+16/−1 lines, 2 files

Files

calculator.cabal view
@@ -1,5 +1,5 @@ name:                calculator-version:             0.1.4.1+version:             0.1.4.2 synopsis:            A calculator that operates on string inputs description:         A calculator repl that processes mathematical expressions.                      Does basic arithmetic, and provides pre-defined basic mathematical functions.@@ -21,6 +21,7 @@                      , Calculator.Evaluator.Cmd                      , Calculator.Evaluator.Expr                      , Calculator.Evaluator.Statement+                     , Calculator.Evaluator.Func                      , Calculator.Parser.Cmd                      , Calculator.Parser.Expr                      , Calculator.Parser.Statement
+ src/Calculator/Evaluator/Func.hs view
@@ -0,0 +1,14 @@+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"