如何将打cup作为列表/向量返回

问题描述 投票:1回答:1

我正在将打ic向量传递给一个函数,该函数会将其打成更多的打ic,但不会像我期望的那样返回它。

这是我的意思的示例:

(defn wrap-fn 
  [input]
  [div.content-box
    [input]])

(defn main-fn 
  [vector-of-hiccup]
  (foreach [hiccup from vector-of-hiccup]
    (wrap-fn hiccup-from-list)))

我如何实现上述的foreach循环?

我尝试使用'apply'将wrap-fn应用于每个矢量参数,但它仅返回包装的第一个元素。我已经尝试创建各种循环,并且获得了相似的成功水平。

我确定有办法做到这一点,请帮助我找到一个可行的方法。

clojure clojurescript
1个回答
2
投票

您需要这样的东西:

(defn wrap-fn
  [input]
  [:div.content-box
   [input]])  ; <= you may not want to wrap `input` in a vector.

(defn main-fn
  [vector-of-hiccup]
  (vec
    (for [item vector-of-hiccup]
      (wrap-fn item))))

注意:中的:div。打ic向量总是以关键字开头。另外,由于for返回一个惰性序列,因此您应该使用vec将其转换为向量。

另外,根据您的情况,您可能希望使用input代替[input]下的:div.content-box

请参阅the Documentation section项目的clj-template以获取有价值的学习信息。>>

© www.soinside.com 2019 - 2024. All rights reserved.