[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue: IGNORE-VARIABLE (Version 1)

Just because you refuse permit to a particular shorthand doesn't mean
people will write the same concept in longhand the way you want them to.
Nothing stops people from writing

 (defun foo (x y ignore)
   (declare (ignore ignore))

People do this all the time. Sometimes they use the word IGNORE.
Sometimes they use the word IGNORED, STUFF, JUNK, HUNOZ, or whatever.
But they do it.

Also, if they were only interested in the first argument, nothing would
keep them from writing

 (defun foo (x &rest more-arguments)
   (declare (ignore more-arguments))

I do this all the time, by the way, and I don't think

 (defun foo (x &rest ignore) ...)

would be any less readable.

If someone really knows he's not going to use something, why does he
need to name it? Just because he gets his grins from wasting symbol
space or watching his code run onto the next screenful or from feeding
the printer an extra sheet of paper? I don't use the value of the 
square of pi when I compute factorial and I would not consider ever
using it even if you insisted on passing it to me. Why should I be
forced to devise a name for a thing I'm sure I'm not going to use?

This problem is particularly acute for anonymous procedures where I can
often see the argument that is being passed in, what is being used, etc.

I'm saying this feature is useful and that I could use it judiciously.
You're saying this feature is not useful and that people could abuse it.
I ignore the argument that it could be abused because that's true of
most everything. We're left with an "I think it's useful; you think it's
not argument".

As a general rule of thumb, in the absence of a technical argument for
solving a dispute, when someone claims that something is useful and
someone else claims it is not, I believe the person claiming it is not
is most likely to be wrong (since for nearly everything that is useful
you can find a situation where it is not without having proved anything).

Anyway, I've made my point and plan to say no more on this unless
specifically asked to.