gpt4 book ai didi

haskell - 计算表达式中运算符的数量 - 无法推断实例

转载 作者:行者123 更新时间:2023-12-02 16:21:01 25 4
gpt4 key购买 nike

我正在开发一个可以计算表达式中使用的运算符数量的函数。我的代码如下:

data Expr = Lit Int |
Expr :+: Expr |
Expr :-: Expr

size :: Expr -> Int
size (Lit n) = 0
size (e1 :+: e2) = 1 + (size e1) + (size e2)
size (e1 :-: e2) = 1 + (size e1) + (size e2)

但是当我尝试使用 Hugs98 执行此代码时,出现以下错误:

Main> size 2+3
ERROR - Cannot infer instance
*** Instance : Num Expr
*** Expression : size 2 + 3

有人可以告诉我我做错了什么吗?我自己实在是没主意了。

最佳答案

2+3 不是有效的表达式。对于您的类型,使用 Lit 数据构造函数创建原始值,有效运算符为 :+::-:。所以你真正需要的是Lit 2 :+: Lit 3。所以尝试一下

size (Lit 2 :+: Lit 3)

关于haskell - 计算表达式中运算符的数量 - 无法推断实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7571259/

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