[英]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.