gpt4 book ai didi

foreach - 嵌套递增 foreach 循环

转载 作者:行者123 更新时间:2023-12-01 23:56:00 29 4
gpt4 key购买 nike

获得类似东西的惯用方法是什么?

((fn [coll] (function-body)) [:a :b :c :d]) 
-> [[:a :b][:a :c][:a :d][:b :c][:b :d][:c :d]]

只能这样了

#(for [i (range (count %))
j (range (inc i) (count %))]
[(nth % i) (nth % j)])

但这很丑陋,而且在更大的集合中非常慢。我想避免循环/重复出现

最佳答案

显式地使用递归......

(defn pairs [coll]
(if-let [[x & xs] (seq coll)]
(lazy-cat (map #(vector x %) xs) (pairs xs))))

例如,

(pairs [:a :b :c :d])
; ([:a :b] [:a :c] [:a :d] [:b :c] [:b :d] [:c :d])

这是一个惰性序列。如果需要,您可以使用 vec 将其倒入向量中:我认为最好留给客户做决定。

关于foreach - 嵌套递增 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23705719/

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