下面是我在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/

10-13 07:25