这是我的 ADT:
data Ex a = I Integer --integer
| Add (Ex a) (Ex a) --add
| Variable a --variable
| Def [(a, Ex a)] (Ex a) --defining local variables
这是我的评估功能:
eval :: Ex a -> Integer
eval (I n) = n
eval (Add e1 e2) = eval e1 + eval e2
我如何继续eval
和?Variable
Def