calculator 0.1.4.1 → 0.1.4.2
raw patch · 2 files changed
+16/−1 lines, 2 files
Files
- calculator.cabal +2/−1
- src/Calculator/Evaluator/Func.hs +14/−0
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"