gpt4 book ai didi

Clojure take-while 和其他 n 个项目

转载 作者:行者123 更新时间:2023-12-03 00:29:16 25 4
gpt4 key购买 nike

在 Clojure 中实现下面的 take-while-and-n-more 的惯用方法是什么:

=> (take-while-and-n-more #(<= % 3)  1 (range 10))
(0 1 2 3 4)

我的尝试是:

(defn take-while-and-n-more [pred n coll]
(let
[take-while-result (take-while pred coll)
n0 (count take-while-result)]
(concat
take-while-result
(into [] (take n (drop n0 coll))))))

最佳答案

我会使用split-with ,这相当于获取相同参数的 take-while 和 drop-while 的结果:

(defn take-while-and-n-more [pred n coll]
(let [[head tail] (split-with pred coll)]
(concat head (take n tail))))

关于Clojure take-while 和其他 n 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com