7
在今天的考試中,我被要求在Haskell中創建表達式評估樹。 通常的答案是簡單的:Haskell中的表達式評估樹
data Expr = Value Integer
| Add Expr Expr
| Sub Expr Expr
| Mul Expr Expr
,並評估它,你只需要使用的功能,如:今天
eval :: Expr -> Integer
eval (Value x) = x
eval (Add l r) = eval l + eval r
eval (Sub l r) = eval l - eval r
eval (Mul l r) = eval l * eval r
然而,我們得到一個數據類型:
data Op = Add
| Sub
| Mul
因此,我假設創建了我可以做的表達式樹:
data Expr = Value Integer
| Op Expr Expr
並使用相同的eval
功能。不過,我已經寫了這個函數並將其加載到GHCI中,但它似乎不起作用。 任何人都可以解釋爲什麼這不起作用?
Ahhhhhh好的,非常感謝。現在很明顯,但有多個構造函數已經讓我有點困惑。 –
你的老師很好的強迫你去思考(不僅要記住):D – josejuan