gpt4 book ai didi

clojure - 为什么在 LazySeq 上应用 seq 会返回 ChunkedCons?

转载 作者:行者123 更新时间:2023-12-04 21:20:42 26 4
gpt4 key购买 nike

(class (range 10))
;=> clojure.lang.LazySeq

(class (seq (range 10))
;=> clojure.lang.ChunkedCons

根据我的理解,LazySeq 已经是一个序列,因为:
(seq? (range 10))
;=> true

最佳答案

我想我有一个答案。

那是因为使用 seq强制评估 LazySeq 的第一个元素.因为 seq返回 nil当集合和序列为空时,它必须评估元素来决定。

这就是为什么rest的确切原因比next更懒, 因为 (next s)只是 (seq (rest s)) .

关于clojure - 为什么在 LazySeq 上应用 seq 会返回 ChunkedCons?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12423786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com