RE: HS violations in Corman

JP Massar <[email protected]> Thu, 20 Mar 2003 08:12:43 -0800
Newsgroups gmane.lisp.corman
Message-ID <[email protected]>
At 11:07 PM 3/19/03 -0800, Roger Corman wrote:
>I had no idea lambda forms supported doc strings. I thought those were 
>purely part of DEFxxx macros (defun, defvar, etc.). What is the system 
>supposed to do with them (besides properly parse them)?

The HS entry for LAMBDA (under SYMBOL) has for syntax:

  lambda lambda-list [[declaration* | documentation]] form*

I suspect the intent was to allow the transformation of other forms into 
lambdas
without worrying about picking apart the doc and decls.  (Nonwithstanding the
fact that this doesn't work very well because usually one has to introduce a
BLOCK around the actual body, so parsing out the doc and decls becomes
the obvious thing to do)

>
>I have fixed the problem with '|| (symbol with no name, or I should say, a 
>zero-length name) and will include it with the next patches. If anybody is 
>desparate for it let me know. That was another thing I had no idea was 
>supposed to be supported, but reading the detailed reader algorithm it is 
>clear that it should be allowed.

Yeah, one could go one's whole Lisp programming life and never think about
such things!

:-)

This came up because the ANSI tests have a list of keywords used as test
examples, and one of the items included in that list was :||

Tests are generally useful, even if they just point out the degenerate cases.

As Kent Pitman recently suggested in comp.lang.lisp, getting the degenerate
cases correct is important because one often has macros that generate code
which will generate such degenerate, but legitimate, forms, even if a human 
programmer would
never do so.