On Thu, May 26, 2016 at 7:09 PM, Mark Engelberg <mark.engelb...@gmail.com> wrote: > 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.
Sorry, I didn't mean it that way--just that it didn't seem useful to me in general for the problems I've been facing with validation. > 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. I can see a lot of use for this! Thank you for pointing it out! -John -- 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.