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 <javascript:>> > 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 >> <javascript:> >> 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 <javascript:> >> 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 <javascript:>. >> 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.