I think I understand what you are trying to do John but it doesn't have the same semantics though.
If you use the first definition, the following expression: (let-while [x (if (> (rand) 0.2) "Yep!" nil)] (println x) (println (str x)))) will work correctly (it will print "Yep!" and "Yep!Yep!" zero or more times when called). If you use the 2nd macro definition, the x value will not be bound to the result of the (if ...) expression => (println x) will trigger a "Unable to resolve symbol: x" error. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---