On Tue, Oct 15, 2013 at 10:48 AM, Sean Corfield <seancorfi...@gmail.com>wrote:

> On Tue, Oct 15, 2013 at 10:19 AM, Jim - FooBar(); <jimpil1...@gmail.com>
> wrote:
> > wasn't cond-> designed exactly for that?
> >
> > (let [x (some-expression)]
> > (cond-> x
> >     (p x) f
> >     ((comlpement p) x) g)))
>
> That's uglier than the if :)
>

Also less efficient, since it may require evaluating (p x) twice.

If it were me, I'd use something like this:

(defn either
   "Return a function that takes one argument, x, and returns (f x) if (p
x) is truthy and (g x) otherwise."
   [p f g]
   (fn [x] (if (p x) (f x) (g x))))

-- 
Ben Wolfson
"Human kind has used its intelligence to vary the flavour of drinks, which
may be sweet, aromatic, fermented or spirit-based. ... Family and social
life also offer numerous other occasions to consume drinks for pleasure."
[Larousse, "Drink" entry]

-- 
-- 
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/groups/opt_out.

Reply via email to