【问题标题】:clojurescript thread macro nested vector problemclojurescript 线程宏嵌套向量问题
【发布时间】:2022-08-17 18:02:24
【问题描述】:

这是我的功能

(defn foo
      []
      (->> (conj (:countries list1)                         ;; [\"UK\" \"USA\" \"IND\"]
                 (:countries list2)                         ;; [\"AUS\" \"NZ\"]
                 (:countries list3)                         ;; \"FRA\"
                 )
           (some-other-operations)))

评论显示了他们获取的数据,我希望我的结果是这样的

[\"UK\" \"USA\" \"IND\" \"AUS\" \"NZ\" \"FRA\"]

但我不知道为什么它会给我这样的输出

[\"UK\" \"USA\" [\"AUS\" \"NZ\"] \"FRA\"]

如果我删除list2,它工作正常。然后它产生这样的输出

[\"UK\" \"USA\" \"FRA\"]

任何人都知道我该如何解决这个问题?

    标签: functional-programming clojure


    【解决方案1】:

    前两个值是列表,但第三个值不是列表 (FRA)。如果是,您可以使用concat

    (concat list1 list2 list3)
    

    如果没有,那么

    (let [list1 ["UK" "USA" "IND"]
          list2 ["AUS" "NZ"]
          v3    "FRA"]
        `(~@list1 ~@list2 ~v3))
    

    【讨论】:

      【解决方案2】:

      您可以flatten 结果来“解包”现在位于集合内的嵌套向量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-01
        • 2015-11-16
        • 2021-12-25
        • 1970-01-01
        相关资源
        最近更新 更多