以下是我在Clojure和Python中为懒惰无限序列的Fibonacci数找到的最佳实现:
Clojure的:
(def fib-seq (lazy-cat [0 1]
(map + fib-seq (rest fib-seq))))
Run Code Online (Sandbox Code Playgroud)
样品用量:
(take 5 fib-seq)
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
def fib():
a = b = 1
while True:
yield a
a,b = b,a+b
Run Code Online (Sandbox Code Playgroud)
样品用量:
for i in fib():
if i > 100:
break
else:
print i
Run Code Online (Sandbox Code Playgroud)
显然,Python代码更直观.
我的问题是:在Clojure中有更好的(更直观和简单的)实现吗?
我正在Clojure Prime Numbers上打开一个跟进问题
很多次,我遇到过X形式/不构成的形式的陈述.
我记得我最近读过的几个例子:
我想了解可编组性在设计/读/写代码方面的含义?例子很好.
programming-languages functional-programming clojure composition