【发布时间】:2017-07-31 21:58:25
【问题描述】:
在这里评估 Haskell 代码:
lazee = 0 : zipWith (+) (map (+1) lazee) (map (2*) lazee)
然后调用take 5 lazee 会产生以下结果:
[0,1,4,13,40]
我不明白上述函数的评估顺序。它们是无限的列表,我很难理解它。因此,我不确定 Haskell 是如何得到这个结果的。
【问题讨论】:
-
你可以想到一个以
a[n+1]=(a[n]+1)+(2*a[n])开头的系列,以a[0]=0开头,相当于3a[n]+1。 -
@karakfa 有道理,谢谢 =)
标签: haskell