gpt4 book ai didi

clojure - Clojure 中的重复向量

转载 作者:行者123 更新时间:2023-12-02 14:20:56 25 4
gpt4 key购买 nike

我是 Clojure 新手。我正在尝试获取纸牌套装矢量的两份副本。非DRY我能想到的方法是

(def suits [:clubs :diamonds :hearts :spades])
(def two-times (concat suits suits))

必须有一种更实用的方法(即使它需要更多的字符:-))。如果我想要N次怎么办?有什么建议吗?

我尝试过的所有事情,例如

(replicate 2 suits)

产生两个独立的向量:

([:clubs :diamonds :hearts :spades] [:clubs :diamonds :hearts :spades])

如何“展平”结构?

最佳答案

concat 为您提供了一个惰性序列。如果您想最终得到一个(非惰性)向量:

user> (into suits suits)
[:clubs :diamonds :hearts :spades :clubs :diamonds :hearts :spades]
user> (reduce into (replicate 2 suits))
[:clubs :diamonds :hearts :spades :clubs :diamonds :hearts :spades]

根据您是通过索引大量访问它还是对其进行迭代,向量或序列可能更合适。

如果您想要无限(惰性)的重复元素流,也总是有循环:

user> (take 9 (cycle suits))
(:clubs :diamonds :hearts :spades :clubs :diamonds :hearts :spades :clubs)

关于clojure - Clojure 中的重复向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2701089/

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