Hi,
I am new to Clojure and I am wondering if there is anything similar to
the following macro already built in:
(defmacro let-while
"Makes it easy to continue processing an expression as long as it is
true"
[[name expr] & forms]
`(loop []
(let [~name ~expr]
(when ~name
~...@forms
(recur)))))
I find it really useful when (for example) reading from a non-blocking
socket. Here is a quick (silly) example:
(let-while [x (if (> (rand) 0.2) "Yep!" nil)]
(println x)
(println (str x)))
The idea is that x is bound to the if expression and if x is true the
println's are executed. Repeat until x is false/nil.
Thanks
Morten
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---