繁体   English   中英

Clojure“反复”

[英]Clojure “repeatedly”

Clojure源可repeatedly读取:

采取没有args的函数(可能带有副作用),并返回一个无限(或长度n,如果提供的话)的懒惰调用序列。

在不知道上面的解释的情况下,如何推断下面的repeatedly定义采用无参数的功能?

(defn repeatedly
  ([f] (lazy-seq (cons (f) (repeatedly f))))
  ([n f] (take n (repeatedly f))))

通过查找传递的函数的引用。

注意:

(f)

f在定义中仅被引用了3次。 其中两次是将其传递给递归调用(您可以说它没有被调用,因为它没有被方括号包围),并且一次被调用。

在调用它的情况下(用括号括起来),您可以告诉它期望有0个参数,因为没有参数传递给它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM