On Thursday, October 25, 2012 12:49:32 PM UTC+2, Tassilo Horn wrote:
>
> Max Penet <m...@qbits.cc> writes: 
>
> > user> ((every-pred (fn [_]))) 
> > true 
> > user> ((some-fn (fn [_]))) 
> > nil 
> > 
> > Shouldn't the first example return false? since the first function 
> > always returns nil? 
>
> No.  ((every-pred a b c) o1 o2 ...) returns true if all predicates a, b, 
> and c return true for all given args o1, o2, and so one.  You don't pass 
> any args, so this is basically (and), which also returns true.  `and` is 
> true if all arguments are logically true, which is trivially given when 
> none are provided. 
>

Ok that makes sense. 
 

>
> > I was also wondering if it would make sense to add a 0 argument 
> > version of these, it would make their usage with apply more 
> > convenient, and comp which has a smiliar signature behaves like that: 
> > 
> > user> ((comp) true) 
> > true 
> > 
> > user> ((some-fn) true) 
> > ; Evaluation aborted. 
> > 
> > user> ((every-pred) true) 
> > ; Evaluation aborted. 
>
> (comp) is `identity` which makes sense.  What would the semantics be for 
> every-pred and some-fn?  IMO, it should be 
>
> user> ((some-fn) <no-matter-what>) 
> false 
> user> ((every-pred) <no-matter-what>) 
> true 
>

> e.g. (some-cn) was equivalent to (constantly false) and (every-pred) was 
> equivalent to (constantly true). 
>

Yes I understand that, the proposal was just to avoid exceptions when used 
with apply, but this could end up be bit confusing maybe, and it can be 
tested beforehand anyway. 

Max

-- 
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

Reply via email to