Re: New draft (#6) and last call for comments on SRFI 266: The expr syntax
Peter McGoron 04 Sep 2026 22:02 UTC
Given that something like
f(x, y, z - w)
would read as
f(x (unquote y) (unquote z) - w)
Would it be possible to take (unquote <expression>) in the list as the
argument separator, and continue parsing as-if <expression> was spliced
into the list?
This is *very* hacky. However, it would allow one to write CALLs into
ARGUMENTs without parentheses (currently forbidden by the grammar).
The other ways to fix it:
1. Change FORMULA in the production of ARGUMENTS to VALUE. This makes `f
(a - b)` a syntax error, in favor of `f((a - b))` being the correct
expression.
2. specify that ARGUMENTS disambiguates by parsing the longest FORMULA
on the left, recursively. This makes `f(a - b)` parse with a single
argument, and you would have to do `f(a (- b))` to make it two
arguments. Another example, `f(a - b sin theta)` is two arguments `(f (-
a b) (sin theta))`, because `a - b` is the longest parse one can do (no
calls).
-- Peter McGoron