Как использовать Haskll функции более высокого порядка для вычисления длины строки - PullRequest
1 голос
/ 06 февраля 2012

Я хочу использовать функцию высшего порядка Haskell Foldr для вычисления длины строки

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

выдает следующую ошибку. В чем проблема с этим кодом?

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

1 Ответ

8 голосов
/ 06 февраля 2012

Вам необходимо добавить пробел в соответствие с шаблоном

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

в настоящее время вы сравниваете одну переменную _n вместо _ и n, как вы, вероятно, хотите.

...