summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs
blob: 58f8ba65dcae1b5f338834662a79f1928e27e3b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module Minilang.Lambda.Eval where

import Data.Text (Text, unpack)
import Debug.Trace (trace)

data Term
  = Var Text
  | Lam Text Term
  | App Term Term
  deriving (Show, Read, Eq)

type Env = [(Text, Term)]

newEnv :: Env
newEnv = []

-- call-by-value evaluator
eval :: Term -> Env -> Term
eval = undefined

evalNeed :: Term -> Env -> Term
evalNeed = undefined