欢迎!请查阅关于页面以获取更多关于此功能的信息。
讨论: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 发布的评论
为 take-until 和 drop-until 实现和测试,每个都一个补丁。
由 wagjo 发布的评论
请将 :added 元数据更改为“1.7”。
更改为 :added "1.7"
评论者:jbm
我想提出将 {{take-through}} 和 {{drop-through}} 作为备用名称。我认为 "通过" 这个词更能清楚地表达它们与 {{take-while}} 和 {{drop-while}} 的区别。
评论者:jafingerhut
由于 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
已重新滚动补丁
涵盖了 transducer 的情况 =)
实际上我也喜欢 take/drop-through
Michael,转换器中不需要volatile / state,例如take-while。只需用'drop-until 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,但它几乎相同。保留归属权。
已标记为预筛选。