I agree - I always use the second form. Generally I find that I often need a let-block for each branch of the if, so I nearly always avoid the need for an explicit 'do'.
On 7 October 2014 14:54, <adrian.med...@mail.yu.edu> wrote: > I agree with James. The first can be tempting when you're doing side > effect heavy code (which should probably cause you to take a double take on > how you got to this point anyhow) but the most glaring issue that is all > too easy to overlook is that they aren't actually equivalent expressions. > Even with side effecting expressions, using an if here reinforces the > notion that you are conditionally returning one of two values, not > conditionally executing two different blocks of statements. > > On Monday, October 6, 2014 9:49:33 PM UTC-4, James Reeves wrote: >> >> The latter is what I'd consider to be the correct approach. >> >> If the do blocks become unwieldy, you can factor them out into functions. >> >> - James >> >> On 7 October 2014 02:16, Mike Fikes <mikef...@gmail.com> wrote: >> >>> Here's a style question: If you have to conditionally do one set of side >>> effects or another set, is your preference to use when and when-not, or >>> an if containing do blocks? Or perhaps some other construct? >>> >>> In terms of a concrete example: >>> >>> (let [boolean-value (some-predicate?)] >>> (when boolean-value >>> (do-alpha) >>> (do-beta)) >>> (when-not boolean-value >>> (do-gamma) >>> (do-delta))) >>> >>> or: >>> >>> (if (some-predicate?) >>> (do >>> (do-alpha) >>> (do-beta)) >>> (do >>> (do-gamma) >>> (do-delta))) >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@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+u...@googlegroups.com >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to clojure+u...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > 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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.