动态填充包含来自datomic db的9个元素的列表

时间:2015-03-30 16:42:01

标签: list clojure datomic

所以我有类似这样的方法:

(defn get-nine-posts []  
  (let [nine-tile ()]
   (->>
      ;;gets three posts
     (conj nine-tile (->> (get-a-bunch-of-posts)
                          (take 3)))

      ;;maybe gets three posts.. [gets somewhere between 0 and 3]
     (conj nine-tile (get-maybe-three-posts))

      ;;fill the rest of the nine-tile
     (conj nine-tile (->>  (get-posts-with-some-args 75 17)
                           (take (- 9 (count nine-tile)))) ;; $$$
     (flatten))))

它将三个列表混合在一起。我要添加的最后一个列表应该填满剩余的插槽数(有9个)。

但是像

 (count nine-tile)  ;; $$$

在最后一个conj的中间只返回0.我希望它能够评估列表中已有多少元素。我想(接受)差异。

这是一种优雅的方法吗?

1 个答案:

答案 0 :(得分:2)

(->> (concat (take 3 (get-a-bunch-of-posts))
             (get-maybe-three-posts)
             (get-posts-with-some-args 75 17))
     (take 9))