请在 2024 年 Clojure 状态调查!中分享您的想法。

欢迎!请查阅关于页面以获取更多关于此功能的信息。

+3
转置器

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

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

21 个答案

0

由 alexmiller 发布的评论

欢迎补丁(附带测试)。

0

由 ataggart 发布的评论

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

0

由 wagjo 发布的评论

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

0

由 ataggart 发布的评论

更改为 :added "1.7"

0

评论者:jbm

我想提出将 {{take-through}} 和 {{drop-through}} 作为备用名称。我认为 "通过" 这个词更能清楚地表达它们与 {{take-while}} 和 {{drop-while}} 的区别。

0

评论者:jafingerhut

由于 6 月 20 日的某些更改,两个补丁 CLJ-1451-drop-until.patch 和 CLJ-1451-take-until.patch 已不再与最新版本的 Clojure master 清洁地应用。我还没有检查它们是否容易更新,但我猜测只需要更新 diff 文件中的几行内容。

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

0

评论者:gshayban

也很有必要包括 transducer 的情况。

0

评论者:michaelblume

已重新滚动补丁

0

评论者:michaelblume

涵盖了 transducer 的情况 =)

0

评论者:michaelblume

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

0

评论者:gshayban

Michael,转换器中不需要volatile / state,例如take-while。只需用'drop-until to terminate'外包即可。

0

评论者:michaelblume

a) 关于take-until,你明显是对的。

b) 我真不知道我在take-until的实现中想的是什么,我将其为睡眠不足。

c) 我对如何在没有volatile的情况下使drop-until工作感到困惑。

0

评论者:michaelblume

Ghadi和我讨论了这个问题,但想不出drop-until的用例。有什么用例吗?

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

待解决问题

take-until这个名字好吗?我最担心的是,take-until让人听起来像take的轻微修改,但这个函数相对于take反转了谓词的含义。

0

评论者:jafingerhut

Michael,虽然JIRA可以处理具有相同名称的多份附件,但对于试图确定哪个具有相同名称的附件是指的谁的人来说可能会很困惑。你能删除或重命名你的同名附件之一吗?有关删除补丁的说明,请参阅此维基页面上的“删除补丁”部分:http://dev.clojure.org/display/community/Developing Patches

0

由 alexmiller 发布的评论

补丁有些过时,所以我更新为适用于master,但它几乎相同。保留归属权。

已标记为预筛选。

...