Vector 将向量列表拼接到一个向量中,而不取消拼接

Vector 将向量列表拼接到一个向量中,而不取消拼接,vector,clojure,Vector,Clojure,是否有一种方法可以在不使用的情况下执行以下操作映射返回向量列表 (def base-html `[:html [:head ~@(map include-css ["css/reset.css" "css/main.css"])] [:body]]) => [:html [:head [:link {:href "css/reset.css", :rel "stylesheet"

是否有一种方法可以在不使用
的情况下执行以下操作<代码>映射
返回向量列表

(def base-html
  `[:html
    [:head ~@(map include-css ["css/reset.css"
                               "css/main.css"])]
    [:body]])

=> [:html 
     [:head 
       [:link {:href "css/reset.css", :rel "stylesheet"}] 
       [:link {:href "css/main.css", :rel "stylesheet"}]] 
     [:body]]
这够了吗

(def base-html
  [:html
    (vec (cons :head (map include-css ["css/reset.css"
                                       "css/main.css"])))
    [:body]])

我不确定这是否比原来的解决方案好很多。如果您想让
[:script]
跟随
[:link]
,我会使用concat,例如(concat[:head](map…[:script]]),如果您要生成html,然后它会自动将序列扩展到元素中。@A.Webb我使用的是
enlive
,最后根据您提到的行为编写了一个宏plus。我不知道这种行为有多可靠,但它似乎起了作用。如果情况开始恶化,我会再次调查。