相关疑难解决方法(0)

Clojure和Python中的懒惰无限序列

以下是我在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上打开一个跟进问题

python clojure

15
推荐指数
5
解决办法
8795
查看次数

什么是"好好组合"意味着什么?

很多次,我遇到过X形式/不构成的形式的陈述.

我记得我最近读过的几个例子:

  • 宏不能很好地构成(上下文:clojure)
  • 锁不能很好地构成(上下文:clojure)
  • 命令式编程并不构成......等等.

我想了解可编组性在设计/读/写代码方面的含义?例子很好.

programming-languages functional-programming clojure composition

15
推荐指数
1
解决办法
1112
查看次数