RosettaCodeData/Task/Same-Fringe/Clojure/same-fringe-1.clj

10 lines
311 B
Clojure

(defn fringe-seq [branch? children content tree]
(letfn [(walk [node]
(lazy-seq
(if (branch? node)
(if (empty? (children node))
(list (content node))
(mapcat walk (children node)))
(list node))))]
(walk tree)))