欢迎!请参阅关于页面以获取更多关于此如何工作的信息。
讨论: https://groups.google.com/d/topic/clojure-dev/NaAuBz6SpkY/discussion
当本来会使用 (take-while pred coll) 但需要包括第一个对 (pred item) 为假的项时,会出现。
(take-while pos? [1 2 0 3]) => (1 2) (take-until zero? [1 2 0 3]) => (1 2 0)
补丁: clj-1451.patch
由 alexmiller 发表的评论
欢迎(带测试)补丁。
由 ataggart 发表的评论
实现 take-until 和 drop-until 的测试,每个一个补丁。
由 wagjo 发表的评论
请将 :added 元数据更改为 "1.7"。
更新至:增加了“1.7”
评论者:jbm
我想建议将 {{take-through}} 和 {{drop-through}} 作为备选名称。我认为 “through” 可以更清楚地表明这些与 {{take-while}} 和 {{drop-while}} 的不同。
评论者:jafingerhut
由于今天早些时候提交的一些更改,两个补丁 CLJ-1451-drop-until.patch 和 CLJ-1451-take-until.patch 日期为2014年6月20日,已无法干净地应用于最新的 Clojure master。我还没有检查它们是否易于更新,但猜测可能只需要更新几行差异上下文。
有关如何更新补丁的建议,请参阅 http://dev.clojure.org/display/community/Developing Patches 中的“更新过时的补丁”部分。
评论者:gshayban
最好也涵盖 transducer 的情况。
评论者:michaelblume
重新滚动补丁
涵盖了 transducer 的情况 =)
实际上,我也喜欢 take/drop-through
Michael,转换器中不需要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,但几乎是一样的。保留归功于。
已标记为预筛选。