aboutsummaryrefslogtreecommitdiff
path: root/src/Evaluation.hs
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-03 22:57:10 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-03 22:57:10 +0200
commit2b0b62b44a87536597050c525322c7bcc745bdb2 (patch)
tree56ee143d427c66cb1f0583c07beec5f181abc983 /src/Evaluation.hs
parent5e7d3a5ff586ac75b768a9a1c1f2d5b80960e821 (diff)
downloadcomputorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.tar.gz
computorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.tar.bz2
computorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.zip
Added polynom solver from computorv1, Added matrix multipilcation
Diffstat (limited to 'src/Evaluation.hs')
-rw-r--r--src/Evaluation.hs35
1 files changed, 0 insertions, 35 deletions
diff --git a/src/Evaluation.hs b/src/Evaluation.hs
index db2c2b2..9b45010 100644
--- a/src/Evaluation.hs
+++ b/src/Evaluation.hs
@@ -1,37 +1,2 @@
module Evaluation where
-import Data.Map as M
-
-import Expr as E
-
-
-type LabelMap a = Map String a
-data Context = Context { variables :: LabelMap Expr
- , functions :: LabelMap (String, Expr)
- }
-
-eval :: Context -> Expr -> Maybe Expr
-
-eval c (Add e1 e2) = evalInfix c e1 e2 add
-eval c (Sub e1 e2) = evalInfix c e1 e2 sub
-eval c (Mul e1 e2) = evalInfix c e1 e2 mul
-eval c (Div e1 e2) = evalInfix c e1 e2 E.div
-eval c (Mod e1 e2) = evalInfix c e1 e2 E.mod
-eval c (Exp e1 e2) = evalInfix c e1 e2 E.exp
-eval c (Dot e1 e2) = evalInfix c e1 e2 dot
-
-eval c (Variable name) = name `M.lookup` (variables c) >>= eval c
-
-eval (Context vars funcs) (Function name e) =
- do arg <- eval (Context vars funcs) e
- (argName, functionExpr) <- name `M.lookup` funcs
- let localVars = insert argName arg vars
- eval (Context localVars funcs) functionExpr
-
-eval c x = Just x
-
-
-evalInfix :: Context -> Expr -> Expr -> (Expr -> Expr -> Maybe Expr) -> Maybe Expr
-evalInfix c e1 e2 f = do a <- eval c e1
- b <- eval c e2
- f a b