Create a gist now

Instantly share code, notes, and snippets.

user=> (defmacro split-while [pred top bottom] `(loop [] ~top (when ~pred ~bottom (recur))))
#'user/split-while
;; Example usage
user=> (def counter (atom 0))#'user/counter
user=> (split-while (< @counter 10) (println @counter) (swap! counter inc))0
1
2
3
4
5
6
7
8
9
10
nil
user=> (split-while false (println @counter) (println "this wont run"))
10
nil
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment