This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-11-25
Channels
- # adventofcode (1)
- # announcements (1)
- # beginners (244)
- # calva (20)
- # cider (11)
- # cljs-dev (34)
- # clojure (50)
- # clojure-spec (1)
- # clojure-uk (3)
- # clojurebridge (1)
- # clojurescript (21)
- # code-reviews (1)
- # cursive (19)
- # events (1)
- # expound (1)
- # fulcro (65)
- # hyperfiddle (6)
- # luminus (3)
- # nrepl (3)
- # off-topic (23)
- # protorepl (4)
- # re-frame (18)
- # rum (11)
- # shadow-cljs (77)
- # spacemacs (8)
- # tools-deps (2)
- # unrepl (1)
- # vim (2)
This shows a pattern I frequently encounter, and I'm unhappy with:
(defn post-order-tree-seq
[branch? children root]
(let [walk (fn walk [n]
(if (branch? n)
(concat (mapcat walk (children n)) [n])
[n]))]
(walk root)))
Using concat
like this to control ordering seems unusual. Is it? Is there something better I could be doing here (relating to this, or the code generally - e.g. lazy-seq)