On Thu, May 26, 2016 at 1:29 PM, John Szakmeister <j...@szakmeister.net> wrote:
> > Yeah, cond is definitely useful here, but not in general. > > cond *is* useful in general, just not the cond that is built-in to Clojure. About 5 years ago, Christophe Grand pointed out in a blog post that cond, augmented with a few extra things (:let, :when, and :when-let) neatly solved a ton of situations where Clojure often gets inelegantly nested, i.e., interleavings of conditional tests with local variable definitions, protection against nil values, etc. I've been using this better cond ever since, for five years now, routinely, in my own code. Once you start using this better cond, you'll never want to go back. Here's the implementation, for use in your own code: https://gist.github.com/Engelberg/9fc1264f938077cf03eee112ebed1768 The most important ingredient here is the ability to put :let into your cond. There has been a JIRA issue for this for nearly 7 years (it's a natural extension to cond, because :let is allowed in for clauses). Given the incredible value this feature offers in terms of keeping code nice and "flat" as opposed to deeply nested/indented, I'm surprised it hasn't yet made it in to Clojure core. Maybe soon, though, if enough people demonstrate that they care. Go vote for this issue: http://dev.clojure.org/jira/browse/CLJ-200. If you don't see how this feature would clean up code, feel free to post an example that feels ugly with cond, and I'll show you how this improves it. -- 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.