arc> (eval ``(+ 1 ,,@(list 2 3) 4))
Error: Unbound symbol: _unquote-splicing
Presumably we want the above form to evaluate to (+ 1 2 3 4) the way Common Lisp would, as opposed to the '(+ 1 2 4) that Scheme (erroneously) produces.
Do you remember what scheme gave that result? On racket:
> ``(+ 1 ,,@(list 2 3) 4)
'`(+ 1 (unquote 2 3) 4)
(Wart gets it right :)
Off hand can't quite remember. I think it was an older version of Scheme48, as the present version I have installed right now (two computers and four OS reinstalls later) doesn't do it.
(+ 1 2 4) is what current reference Arc does when presented with (eval ``(+ 1 ,,@(list 2 3) 4)). Not sure why it does that.
Found an old discussion on this very topic:
Looks like the code linked to there might be the basis for Arcueid's new quasiquote algorithm.
Holy crap, you're right! Anarki is the same. I could swear this was fixed at some point. Perhaps on the arc2 branch?
Nested quasiquote behaviour now obeys Common Lisp semantics as of a2f07b0