分享您的想法,参加2024 年 Clojure 调查问卷!

欢迎!请查阅关于页面获取更多关于如何使用的信息。

+3
转换器

讨论: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

  • 包括 take-until 的转换器参数
  • 包括在转换器生成测试中的包含

21 答案

0

由:alexmiller 发表评论

补丁欢迎(含测试)。

0

由:ataggart 发表评论

为 take-until 和 drop-until 实现和测试,每个补丁一个。

0

由:wagjo 发表评论

请将 :added 元数据更改为 "1.7"。

0

由:ataggart 发表评论

更新为:添加了 "1.7" 版本

0

由 jbm 发表的评论:

我想提议将 {{take-through}} 和 {{drop-through}} 作为备选名称。我认为 "through" 能更清楚地表达它们与 {{take-while}} 和 {{drop-while}} 的区别。

0

由 jafingerhut 发表的评论:

由于今天早些时候提交了一些更改,因此2014年6月20日发布的两个补丁文件 CLJ-1451-drop-until.patch 和 CLJ-1451-take-until.patch 无法干净地应用于最新的 Clojure 主分支。我没有检查它们是否容易更新,但猜测可能只需要更新几个 diff 上下文行。

有关更新补丁的建议,请参阅 http://dev.clojure.org/display/community/Developing Patches 中的 "更新陈旧的补丁" 部分。

0

由 gshayban 发表的评论:

最好也涵盖 transducer 的情况。

0

由 michaelblume 发表的评论:

重新滚动补丁

0

由 michaelblume 发表的评论:

涵盖了 transducer 的情况,=)

0

由 michaelblume 发表的评论:

实际上我也喜欢 take/drop-through。

0
by

由 gshayban 发表的评论:

Michael,转换器中不需要矢量或不稳定/状态,例如 take-while。只需将其包装在 'reduced to terminate' 中。

0
by

由 michaelblume 发表的评论:

a) 你关于 take-until 的说法是对的

b) 很抱歉,我不记得为什么我的 take-until 实现有误,我要声称是因为缺乏睡眠。

c) 我不清楚如何在没有矢量的情况下使 drop-until 工作起来。

0
by

由 michaelblume 发表的评论:

Ghadi 和我讨论了这个问题,没有想到 drop-until 的用法案例。有吗?

这是一个新的 take-until 补丁,包括生成测试。

开放性问题

take-until 这个名字好吗?我最大的担忧是,take-until 让人听起来像是 take 的轻微修改,但这个函数与 take 相比,相反的医疗标准。

0
by

由 jafingerhut 发表的评论:

Michael,虽然 JIRA 可以处理具有相同名称的多张纸卡,但对于试图确定相同名称的是哪张的人来说可能会很困惑。您可以删除或重命名您的重复文件之一吗?有关删除补丁的说明请参阅本维基页面的“删除补丁”部分:[http://dev.clojure.org/display/community/Developing+Patches](http://dev.clojure.org/display/community/Developing+Patches)

0
by

由:alexmiller 发表评论

由于补丁稍微有些过时,所以我对其进行了更新以应用 master,但它几乎相同。保留归属权。

标记为预筛。

...