On Jan 13, 1:42 pm, Chouser <chou...@gmail.com> wrote:
> One of the things I found difficult with CL was the extremely large
> number of builtin functions -- a large vocabulary with subtle
> differences between nearly synonymous-sounding words.  It meant that
> at first glance, a particular block of could would look simple -- 5
> lines, how hard could it be?  But in reading it I would discover I
> only new 2 of the 15 functions used.  So I'd fight through it, feeling
> like I was learning something useful, but the next function would use
> 15 completely different functions.

I don't recall having this problem with CL, but then again I never did
much reading of other peoples' code.  The size of the reference
section of ANSI CL is definitely daunting though.

I guess there's a delicate balance here between functionality and
complexity.  I think my personal preference is towards more
functionality at the expense of added complexity, but I can see the
other side too.

One thing worth pointing out is that, if a utility is really useful
many people will independently recreate it with slightly different
names and functionality, and use it in their code.  It seems that this
results in code that's much more difficult to read than if the utility
was standardized in the first place.

> Yes, that's a mouthful.  I'll need to study merge-reduce and map-map a
> bit more to see when to use them instead of merge, merge-with, and
> into.

Oops, don't know how I missed those.  Looks like merge-reduce is
almost identical to merge-with (except that it allows seqs of map-
entries for all maps but the first), and map-map is equivalent to
(into {} (map ...)).

I'm not sure if this example supports or detracts from my argument
above.  On one hand, these utilities are clearly useful enough that
I've independently recreated them (this also happened verbatim for
several utilities I later discovered in clojure.contrib).  On the
other hand, given that they already existed (in clojure.core, no
less), this would seem to support your point that having more
standardized utilities just means that nobody will ever know them all
well.

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