'when pred' just checks that you're not passing in garbage for the
predicate -- it's probably not really necessary and it might be better
to let Clojure throw an exception.

Totally agree on your point with the branching. That's not really FP-
related, it's only that most FP languages allow pattern matching and
prefer to be "lean" by handling special cases for you.

On Feb 1, 9:53 pm, ka <sancha...@gmail.com> wrote:
> Hi clojure folk,
>
> I'm reading up on clojure from the book 'Programming clojure'.  In
> chapter 2 there is a statement -
>
> "The imperative indexOfAny must deal with several special cases:
> null or empty strings, a null or empty set of search characters,
> and the absence of a match. These special cases add branches
> and exits to the method. With a functional approach, most of these
> kinds of special cases just work without any explicit code."
>
> I'm not quite sure if I understand this properly. How is it that with
> a functional approach, most of these special cases like null checks or
> empty checks get handled automatically?  I mean isn't that a property
> of the language / api rather than the programming approach per se?
> Please explain with some examples!
>
> On a similar note, following is the definition of the function index-
> filter given in the book :-
>
> (defn index-filter [pred coll]
>   (when pred
>     (for [[idx elt] (indexed coll) :when (pred elt)] idx)))
>
> Why is the 'when pred' check necessary?
>
> Thanks!

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