On Oct 27, 10:45 pm, "Stephen C. Gilardi" <[EMAIL PROTECTED]> wrote:
> I used Stuart Sierra's 'fcase' contrib today to good effect. Nice job,
> Stuart!
Thanks!
On Oct 28, 9:35 am, Rich Hickey <[EMAIL PROTECTED]> wrote:
> If you'd like, I think the effort would be better spent on making a
> version of fcase for the base library.
Cool!
> I'd like to save unadorned "case" for this meaning.
Fine by me.
> There is implicit arg ordering (pred clause-value test-value) which
> doesn't matter for some preds (=) but does for others (instance?). For
> the uses thus far, this order seems good - instance? and re-find work
> well, but there will be cases where people will want (pred test-value
> clause-value). The order of things in the macro structure might imply
> the latter:
...
> (condp (= x _) ;doesn't matter
> (condp (instance? _ x)
> (condp (some #{x} _)
How about just one argument, the predicate: (condp #(= x %) ...)
That would resolve the issue without adding syntax, no?
> As far as the default, providing a default value as odd last clause is
> ok, but subtle, and could use layout help, if we do that we should do
> the same for cond.
I stole that idea from Arc's "if", which has the interesting quality
of unifying "if" and "cond". I often use the "else" clause to throw
an exception:
(condp #(= x %)
42 "The Meaning of Life"
13 "Unlucky"
1 "The loneliest number"
(throw (Exception. "Nothing matched."))
I feel like "econdp" would be less clear, since you don't know what
kind of exception should be thrown. Plain old Exception? Or
RuntimeError?
> Finally there is the name, which has to follow the form and function.
> If we go with something like the last above, I like condp/econdp.
I'm not sure about condp, only because Clojure hasn't used the CL-ish
"-p" suffix anywhere else. Ideas: condfn, fcond, cond-apply, cond-
with, try-each,...
-S
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---