Subject: Re: LOOP and patterns (Re: Hash to list?) From: Erik Naggum <erik@naggum.no> Date: 1999/12/13 Newsgroups: comp.lang.lisp Message-ID: <3154094846488075@naggum.no> * Frode Vatvedt Fjeld <frodef@acm.org> | Well, I disagree with you here. I think "(hash-table-list x)" is a lot | more readable (and not the least bit weird) than the loop expression, | which I find about equally readable to the "plain" lisp form. And, more | importantly, the time-to-convince-me-it's-correct factor is also much | better. well, I would _not_ understand what a function called HASH-TABLE-LIST was doing without reading its documentation or source code, and that I would have to repeat every time I found it in a new package or project. the reason is quite simple: there are so many lists that could be generated from hash tables that none of them merit being the only one thus named. | I'm a bit confused: My impression after reading OnLisp and other books is | that I'm encouraged to write and use precisely this kind of "utilities". | Do you disagree with this? actually, yes. naming utility functions is a very hard problem, and they should therefore not be multiplied lightly. when there is clearly a diversity of needs, it is better to be a little more verbose than to pollute the name space with thousands of functions. the C++ way to do this is to talk about patterns to discourage people from creating tons of one-call functions. the Lisp way is to create sub-languages and macros that cover _multiple_ needs well. I actually think LOOP succeeds in this, but it suffers in my view from not creating an environment with local macros instead of the positional "lexical keyword" stuff that I have come to dislike in other languages. #:Erik