欢迎!有关如何使用本站的信息,请参阅关于页面。
讨论: https://groups.google.com/d/topic/clojure-dev/NaAuBz6SpkY/discussion
当需要使用(take-while pred coll),但需要包含第一个满足(pred item)为false的元素时,会用到它。
(take-while pos? [1 2 0 3]) => (1 2) (take-until zero? [1 2 0 3]) => (1 2 0)
补丁: clj-1451.patch
评论由:alexmiller发布
欢迎(带测试)补丁。
评论由:ataggart发布
Impl 和 tests for take-until 和 drop-until,每个补丁一个。
评论由:wagjo发布
请将:added 元数据更改为 "1.7"。
更新为:added "1.7"
由 jbm 发表的评论:
我希望提议将 {{take-through}} 和 {{drop-through}} 作为备选名称。我认为“through”更清楚地表达了它们与 {{take-while}} 和 {{drop-while}} 的区别。
由 jafingerhut 发表的评论:
由于今天早些时候的一些更改,2014 年 6 月 20 日的补丁 CLJ-1451-drop-until.patch 和 CLJ-1451-take-until.patch 已无法干净地对最新的 Clojure master 应用。我没有检查它们是否简单更新,但猜测它们只需要更新几行 diff 上下文。
有关如何更新补丁的建议,请参阅 "http://dev.clojure.org/display/community/Developing Patches" 章节中的“更新过时的补丁”部分。
由 gshayban 发表的评论:
也希望包含 transducer 的情况。
由 michaelblume 发表的评论:
重roles patches
覆盖 transducer 情况 =)
实际上我也喜欢 take/drop-through
Michael,在 transducer 中,不需要 volatile/state,就像 take-while 一样。只需包裹在'reduced to terminate'中即可终止
a) 你对 take-until 的理解显然是正确的
b) 严肃地说,我不记得为什么我在 take-until 的实现中这样思考,我要声称是因为睡眠不足。
c) 我对如何在没有 volatile 的情况下使 drop-until 有效地工作感到困惑
Ghadi 和我讨论了这个问题,想不出 drop-until 的用例。有吗?
这是一个新的 take-until 补丁,包括生成测试。
开放性问题
take-until 这个名称好吗?我最担心的是,take-until 这个名称听起来像是 take 的小修改,但这个函数相对于 take 来说反转了谓词的意义。
Michael,虽然 JIRA 可以处理同名附件,但对于试图确定哪个同名附件是意图的的人来说可能会很混乱。你能否删除或重命名其中一个相同名称的附件?有关删除补丁的说明,请参阅本维基百科页面上的“删除补丁”部分: http://dev.clojure.org/display/community/Developing Patches
因为这个补丁有点过时,所以我更新了为了应用到 master,但它几乎是相同的。保留归功。
已被标记为预审。