|
|
|
|
|
by hofstee
1036 days ago
|
|
data Exp = Num Int
| Bool Bool
| Var Var
| If Exp Exp Exp
| Lambda Var Exp
| App Exp Exp
An Expression is either:- a Number literal, with an Integer value - a Boolean literal, with a Boolean value - a Variable declaration, with some identifier - an If expression (probably), with a condition, taken, and not-taken Expressions - a Lambda, which substitutes a Variable into an Expression - an Apply, which is how we chain Expressions and apply the results of one expression onto the next data Type = TyInt | TyBool | TyArrow Type Type
Our Types are TypeInt, TypeBool, or a Function (TyArrow) which goes from an input Type to an output Type |
|