Subject: Re: count symbols in a list From: Erik Naggum <erik@naggum.no> Date: 02 Dec 2002 16:18:24 +0000 Newsgroups: comp.lang.lisp Message-ID: <3247834704250207@naggum.no> * Christophe Rhodes | I submit that : | is a conforming implementation of DOLIST (modulo extraction of | declarations in the body). I see. | Not at all -- it does not say, from which you can conclude (well, if | you read the rest of the standard as well, and if it does not say | anywhere) that it does not say. Amazing. | Have you read the issue that I referred to? Yes. | one might wish to implement DOLIST by calculating the length of the list | in question, generating a destructuring argument list and destructuring | the list, then successively binding the iteration variable to each | destructuring variable in turn. If you do this, or the braindamaged attempt you started with, I am not going to use your implementation and if I find a bug because of such a moronic attempt to make life as hard as possible for your users, I will replace your rotten `dolist´ with one that works as expected. Why do I think this rebarbative complaint is meretricious? Superficially, adherence to the standard is a high and noble goal, but when invoked where it clearly has no place in intelligent implementations, and where rational circumventions of the supposed violation is the obvious /expansion/ of the /macro/ under question, it sullies the value of conformance. Those who do not want to pay much attention to the standard can then point to the cantankerous quibblers and catamarans who engage in invention of clearly insane implementation techniques in their overzealous attempts to show that one cannot guard against excesses in human stupidity. However, if Common Lisp were a language designed /by/ morons /for/ morons, we would also need a battery of "guarantees" from the standard that implementors with an IQ below that of U.S. Presidents would be forced to follow under threat of military action against them. Common Lisp is a language by and for people with working brains. The standard is not some license for academic masturbators to be creative at the expense of the programmers with the excuse that they are conforming to some bogus "letter of the standard". The spirit of the standard is more important than the letter. Prohibition against messing with the traversed list structure is obviously a good idea for functions where the traversal mechanism is opaque, as in `mapcar´, but it is nuts to claim that `dolist´ should be similarly constrained for the tail of the list. (Messing with the cdr /chain/ is obviously moronic as there is no guarantee that, e.g., `delete´ would have only and exactly harmless effects, but appending to the tail? Gimme a freaking break!) I refuse to consider your bogus implementations of `dolist´ as /possible/ unless one wishes to prove a point, which means you would have to be more than pathologically anal-retentive to /actually/ do such a stupid thing. If you want languages that are created mainly to prove some irrelevant point, try Scheme or the functional languages. Common Lisp is a language for getting the job done while being both elegant and intelligent. Common Lisp should ideally be off-limits to morons. This was the last time I post any code to this goddamn newsgroup. It was a mistake to post code to begin with. I apologize for upsetting the anal- retentive so much. Had I known I had posted to an audience of rejects for the leading role of "Rain Man", I would have shut up long ago. Fuck it. -- Erik Naggum, Oslo, Norway Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.