From: Kalle Olavi Niemitalo
Subject: Re: Problem with "lamba expression"
Date: 
Message-ID: <87n18uanaz.fsf@Astalo.y2000.kon.iki.fi>
Frode Vatvedt Fjeld <······@acm.org> writes:

> there is no such ting as redundant parens

  (case x
    ((1) 'a)
    (2 'b))

The parentheses around 1 look pretty redundant to me.
Yet, unlike in C, ((1)) would mean something else.

From: Marco Antoniotti
Subject: Re: Problem with "lamba expression"
Date: 
Message-ID: <y6cpudqmsmi.fsf@octagon.mrl.nyu.edu>
Kalle Olavi Niemitalo <···@iki.fi> writes:

> Frode Vatvedt Fjeld <······@acm.org> writes:
> 
> > there is no such ting as redundant parens
> 
>   (case x
>     ((1) 'a)
>     (2 'b))
> 
> The parentheses around 1 look pretty redundant to me.
> Yet, unlike in C, ((1)) would mean something else.

As a matter of fact this is one case where the parenthesis are
*optional*, not *redundant*.

Cheers

-- 
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group	tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA			http://bioinformatics.cat.nyu.edu
	       "Hello New York! We'll do what we can!"
			Bill Murray in `Ghostbusters'.
From: Frode Vatvedt Fjeld
Subject: Re: Problem with "lamba expression"
Date: 
Message-ID: <2hae4uwwlg.fsf@dslab7.cs.uit.no>
Kalle Olavi Niemitalo <···@iki.fi> writes:

> The parentheses around 1 look pretty redundant to me.  Yet, unlike
> in C, ((1)) would mean something else.

Ok, you win :-)

I would claim though that this kind of redundancy is different in
nature to the the way curly braces can be redundant in C control
structure or parens in C expressions.

-- 
Frode Vatvedt Fjeld
From: Kent M Pitman
Subject: Re: Problem with "lamba expression"
Date: 
Message-ID: <sfw1yq6sdjw.fsf@world.std.com>
Kalle Olavi Niemitalo <···@iki.fi> writes:

> 
> Frode Vatvedt Fjeld <······@acm.org> writes:
> 
> > there is no such ting as redundant parens
> 
>   (case x
>     ((1) 'a)
>     (2 'b))
> 
> The parentheses around 1 look pretty redundant to me.
> Yet, unlike in C, ((1)) would mean something else.

The fact that additional parens yield the same computational result in
an isolated circumstance does not prove the claim that the marker is
syntactically redundant.  Viz, "flammable" and "inflammable".

The "take-home message" of the original claim was that you can't just
throw extra parens around careLESSLY, and that is most certainly true.
That there are careFULLY contrived cases that you can add additional
parens without harm is not a refutation of the claim.

(1) means (member x '(1))
while 
1 means (eql x '1)
Those are just different expressions which happen to yield identical results.
And that explains why still more parens doesn't make things better.
((1)) would mean 
(member x '((1)))
which would almost surely fail unless by accident the compiler had coalesced
the constant (1) to be the same coalesced (1) that x had been initialized
through a '(1).

Optional additional reading: "list designators" in CLHS.
See 1.4.1.5 (Designators) and the glossary entry for designators.
From: Kalle Olavi Niemitalo
Subject: Re: Problem with "lamba expression"
Date: 
Message-ID: <iznae4tw7vf.fsf@stekt34.oulu.fi>
Kent M Pitman <······@world.std.com> writes:

> ((1)) would mean 
> (member x '((1)))
> which would almost surely fail unless by accident the compiler had coalesced
> the constant (1) to be the same coalesced (1) that x had been initialized
> through a '(1).

Oops.  I was confused by the Emacs Lisp "member" which compares with
"equal".