我正在研究可以计算表达式中使用的运算符数的函数。我的代码如下:计算表达式中的运算符数 - 无法推论实例
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
有人能告诉我什么,我做错了什么?我真的没有想法,我自己。
从我+1没有一个SO帐户,并要求这样一个很好格式化,措词和标签的问题。 –
您在2 + 3周围缺少括号。此外,您必须将Num实例添加到您的Expr类型。 – fuz
只是为了好玩:http://ideone.com/WsAk5 –