我有一个计算第 n 个斐波那契数的算法,在 Python 中它表示为:
def fib(n):
if n == 0:
return 1
if n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
在 Haskell 中:
fib :: Integer -> Integer
fib 0 = 1
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
我本来希望 Haskell 更快或几乎同时进行评估,但是如果使用上面的数字说 n=40,python 代码的评估速度要快得多(~x3)。我正在使用 GHCi 和 Ipython,但我认为这不会有所作为。