Skip to content

Instantly share code, notes, and snippets.

Created September 9, 2011 21:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/1207424 to your computer and use it in GitHub Desktop.
Save anonymous/1207424 to your computer and use it in GitHub Desktop.
;; tarcieri's solution to Flatten a Sequence
;; https://4clojure.com/problem/28
(fn zomgflatten
([input]
(seq (zomgflatten input [])))
([initial-seq initial-result]
(loop [s initial-seq result initial-result]
(let [head (first s) tail (rest s)]
(if head
(if (or (list? head) (vector? head))
(let [res (zomgflatten head result)]
(recur tail res))
(let [res (conj result head)]
(recur tail res)))
result)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment