所以我有类似这样的方法:
(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.我希望它能够评估列表中已有多少元素。我想(接受)差异。
这是一种优雅的方法吗?
答案 0 :(得分:2)
(->> (concat (take 3 (get-a-bunch-of-posts))
(get-maybe-three-posts)
(get-posts-with-some-args 75 17))
(take 9))