下面是我在clojure和python中找到的关于fibonacci数的无限长懒散序列的最佳实现:
Clojure公司:
(def fib-seq (lazy-cat [0 1]
(map + fib-seq (rest fib-seq))))
样品用途:
(take 5 fib-seq)
蟒蛇:
def fib():
a = b = 1
while True:
yield a
a,b = b,a+b
样品用途:
for i in fib():
if i > 100:
break
else:
print i
显然,python代码更直观。
我的问题是:Clojure中是否有更好(更直观和简单)的实现?
编辑
我将在打开后续问题
Clojure Prime Numbers
最佳答案
我喜欢:
(def fibs
(map first
(iterate
(fn [[ a, b ]]
[ b, (+ a b) ])
[0, 1])))
这似乎与Python/Generator版本有一些相似之处。
关于python - Clojure和Python中的懒惰无限序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1587412/