[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: DESTRUCTURING-BIND (Version 2)
- To: John Foderaro <franz!frisky!jkf@ucbarpa.Berkeley.EDU>
- Subject: Re: Issue: DESTRUCTURING-BIND (Version 2)
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Mon, 6 Feb 89 19:36 EST
- Cc: CL-Cleanup@SAIL.STANFORD.EDU
- In-reply-to: <8902062127.AA00873@frisky>
- Supersedes: <19890206231007.4.MOON@EUPHRATES.SCRC.Symbolics.COM>
Date: Mon, 06 Feb 89 13:27:54 PST
From: franz!frisky!jkf@ucbarpa.Berkeley.EDU (John Foderaro)
What I suggested and what you want are in fact not separate issues.
What you said you want is:
the feature that I really prefer is the one that provides an
automatic DECLARE IGNORE for any variable that is named IGNORE and is
In other words, what you want is a new type of declaration that a variable
should be '(declare (ignore ..))'d if it isn't used. This is reasonable
thing to ask for. You further want to restrict that to the single
symbol named 'ignore'. What is the point in adding something
if you then go and restrict it to one symbol? Where is the leverage?
I understand your point, but I don't see it that way. To me, asking for
a way to create user-defined synonyms for IGNORE is like asking for a
way to create user-defined synonyms for &REST. It would be more general
and flexible, but it doesn't seem necessary nor very useful.
If one must write a declaration, I see no advantage to the user in
having to use a longer declaration name than the existing IGNORE
The point is that what you are asking for is different than just
automatically putting in a (declare (ignore ignore)) after every
binding of ignore.
No it's not.
You are asking for 'ignore-if-unused' not 'ignore'
(most compilers (I assume) will complain if a variable declared ignored is
No, I was asking for the equivalent of the IGNORE declaration. Unfortunately
I expressed myself poorly, so I can see how you thought I was asking for
something different. I'm sorry about that.
In most systems it works
to write (PROGN var1 var2 var3 body...) in the macro expansion to
make var1, var2, var3 look like they are used, so no new declaration
is required for this.
Maybe it is just me but I consider this practice to be vile. I certainly
hope that it is legitimate for a compiler to complain if the only use
of a variable is in a place where its value isn't used.
I would consider the adoption of this 'auto-ignore' proposal as
a little wart on the language that encourages bad programming style
(i.e. rather than use a meaningful variable name and then declare
it ignored, one would be encourage to be lazy and just use 'ignore').
As we are all aware, many more man-hours are spent reading
and modifying a piece of code than are spent typing it in, so
extra time spent while typing it in really counts.
Conciseness saves reading time also.