我已經看到了幾個在參數中使用函數的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