gpt4 book ai didi

clojure - "into"函数有什么用?

转载 作者:行者123 更新时间:2023-12-01 03:54:00 25 4
gpt4 key购买 nike

我有一个这样定义的函数:

(defn delete-rule [rules rule]
(om/transact! rules
(fn [rules] (into [] (remove #(= rule %) rules)))))

这里into的作用是什么?这不会产生与上述结果完全相同的结果吗:

(defn delete-rule [rules rule]
(om/transact! rules
(fn [rules] (remove #(= rule %) rules))))

最佳答案

来自 remove 的文档:

Returns a lazy sequence of the items in coll for which (pred item)returns false. pred must be free of side-effects. Returns a transducerwhen no collection is provided.

来自 into 的文档:

Returns a new coll consisting of to-coll with all of the items offrom-coll conjoined. A transducer may be supplied.

所以区别在于,带有into 的删除规则版本返回一个非惰性向量,而没有 into 的版本返回惰性序列。

你的函数的细节是om不支持列表(或惰性序列)作为游标,仅支持映射和向量,这就是必须将 remove 的输出转换为向量的原因。

希望对您有所帮助。

关于clojure - "into"函数有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31491108/

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