Subject: =?Windows-1252?Q?RE:_[External]_:_Re:_bug#61281:_=93`(a_\, _b)=94_equals_t?= o “`(a . , b)”

From: Drew Adams <[email-masked]>
Date: Sun, 5 Feb 2023 15:53:58 +0000

> > No evaluation by backquote, you mean?  Yes, you need
> > to say `(a ,'\, b).
> > Is this really different in other Lisps (isn't `,' a
> > reader macro in Common Lisp)?

I think I spoke to this in my previous msg
today.  Let me know, if you think not.

> I mean, what should the Elisp reader return
> when reading ",foo"?

Dunno.  (read ",foo") and (read ", foo" return
(\, foo).  Why?  (Just because the current
implementation of backquote depends on that?)

(read "'foo") returns just 'foo - it doesn't
return (quote foo).  (read "`foo") returns
`foo, not (backquote foo).  (read "`,foo")
returns `,foo.  And (read "\\,foo") returns
\,foo.

Maybe (read ",foo") should rather return
",foo" - but of course the Lisp reader would
need to behave accordingly.  And maybe
(read ", foo") should return ",".

> It must be some expression, and backquote
> will have to handle this expression differently
> than quote for the thing to work.

See above.

Notice the error msg from (eval ',foo):

Debugger entered--Lisp error: (void-function \,)
  ,foo
  eval(,foo)
  (progn (eval ',foo))

Nothing in (normal) Lisp syntax shows the use
of comma as a function.  ,foo doesn't look
like function-call syntax, does it?

And here's the error from either (read ",")
or (eval (read ",")):

 End of file during parsing

Yes, an error should be reported in each case,
but I think it should just say that comma is
undefined outside of backquote.