gpt4 book ai didi

haskell - Haskell 中的表达式求值树

转载 作者:行者123 更新时间:2023-12-04 05:52:56 25 4
gpt4 key购买 nike

在今天的考试中,我被要求在 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 中,但它似乎不起作用。
谁能解释为什么这不起作用?

最佳答案

您必须定义数据构造函数(提供名称)

data Expr = Value Integer | Compute Op Expr Expr
^^^^^^^

然后
eval :: Expr -> Integer
eval (Value x) = x
eval (Compute Add l r) = eval l + eval r

等等。

:)

关于haskell - Haskell 中的表达式求值树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16648208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com