到目前为止,在构造lazy-seq的过程中如何称呼lazy-seq?
|
对于我的质数lazy seq,我正在检查索引值是否可被当前索引(
prime?
)以下的所有素数整除。问题是,当我在自身内部调用素数时(shr-primes
行中的primes
),它仅返回初始值。延迟构建时可以保持lazy-seq更新吗?这似乎与lazy-seq概念背道而驰。
(def primes
(cons 2 (for [x (range)
:let [y (-> x (* 2) (+ 3))
root (math/floor (math/sqrt y))
shr-primes (take-while (partial >= root) primes) ;; primes stuck at init value
prime? (every? #(not= % 0) (pmap #(rem y %) shr-primes))]
:when prime?]
y)))
没有找到相关结果
已邀请:
1 个回复
室邢
我已经使用上述方法来实现您上面概述的素数序列,因此,如果您需要更多详细信息,请告诉我。同时,这将有望成为有用的提示。