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