blob: 5356b30c7348fd68de91382b2ee29bae90689405 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
module Evaluation where
import Expr
-- eval :: A.Context -> Expr -> Maybe Expr
-- eval c (Variable n) = do (A.Variable _ e) <- A.get c n
-- eval c e
-- eval c (Function n e) = do x <- eval c e
-- (A.Function _ param fe) <- A.get c n
-- let tmp = A.update c (A.Variable param x)
-- eval tmp fe
-- eval c (Add e1 e2) = evalInfix c e1 e2 (builtinAdd)
-- eval c (Sub e1 e2) = evalInfix c e1 e2 (builtinSub)
-- eval c (Mul e1 e2) = evalInfix c e1 e2 (builtinMul)
-- eval c (Div e1 e2) = evalInfix c e1 e2 (builtinDiv)
-- eval c (Mod e1 e2) = evalInfix c e1 e2 (builtinMod)
-- eval c (Exp e1 e2) = evalInfix c e1 e2 (builtinExp)
-- eval c (Dot e1 e2) = evalInfix c e1 e2 (builtinDot)
-- eval c x = Just x
--
-- evalInfix :: A.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
|