我已经看到了几个在参数中使用函数的Haskell代码的例子,但我永远无法让它为我工作。是否可以在Haskell参数中使用函数?
例如:
-- Compute the nth number of the Fibonacci Sequence
fib 0 = 1
fib 1 = 1
fib (n + 2) = fib (n + 1) + fib n
当我尝试这一点,我得到这个错误:
Parse error in pattern: n + 2
这只是一个坏榜样?或者我必须做一些特殊的事情来完成这项工作?
也许这是有趣的? http://stackoverflow.com/questions/3748592/what-are-nk-patterns-and-why-are-they-banned-from-haskell-2010 – gspr 2012-02-24 15:50:42
这些所谓的(n + k)模式从Haskell被禁止前一段时间。将第三行替换为:'fib n = fib(n - 1)+ fib(n - 2)'。 – Vitus 2012-02-24 15:51:22
注意:还有一种方法可以在等式左侧看到函数调用:[ViewPatterns](http://hackage.haskell.org/trac/ghc/wiki/ViewPatterns)。我很惊讶他们不是更常见。 – 2012-02-24 17:28:59