I am confused about how comma-comma-at does what it does.
An example of use of comma-comma-at is in Is there a use for double unquote (double comma) when defining a Lisp macro?
It seems to me that
(let ((parms '(x y)))
``(beg ,,@parms end))
expands to or something equivalent to
`(beg ,x ,y end)
How does it expands to that?
I was thinking, if I evaluate the double backquote form, it causes the second comma to do its work, and the result is:
`(beg ,<splice stuff here> end)
and it looks like Lisp interpreter should complain and say "I don't know what it means to splice stuff before a comma" in the sense that when Lisp encounters
`,@abc
it would be likely to say "I don't know what it means to splice stuff before a backquote. Don't ever do that again."
But somehow, the interpreter does not complain and simply choose to do
`(beg <splice stuff here and write comma in front of each of them> end)
Is that compatible with rules in CLHS backquote?
For readers information, comments following the answer refer to an old version of the answer, and lead to update of the answer. New readers don't need to read the comments.
Also see CHLS "innermost backquoted form should be expanded first" meaning