1

我想使用 Haskell 高阶函数 Foldr 来计算字符串的长度

stringlength = foldr (\_n -> 1 + n) 0

它给出以下错误。这段代码有什么问题?

Unresolved top-level overloading
*** Binding             : stringlength
*** Outstanding context : (Num b, Num (b -> b))
4

1 回答 1

8

您需要在模式匹配中添加一个空格

(\_ n -> ... )
   ^^here

当前,您正在匹配单个变量_n,而不是您可能想要的那样与_and匹配。n

于 2012-02-06T14:47:05.180 回答