On Thu, Apr 1, 2021 at 3:58 AM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote:
 
Instead, I see the following two ways to proceed:

(1) Reader extensions are provided through normal Scheme libraries. These can be imported at the beginning of source files through a special syntax to define the reader that is used for the rest. This is the approach Racket uses (where "#lang" is its special syntax).

If you remember, we have two use cases: an entirely separate syntax (for which #lang is appropriate) and incremental extensions to existing syntaxes.  The #. proposal is meant for the second case only.
1 2 #.(my-reader "3 4 5") 6 7

This makes editor syntax coloring, paren matching, etc. impossible, since everything would look like a string.
Thanks for the explanation. Could this be fitted to R7RS's rather involved lexical syntax?

See the Chicken library (chicken read-syntax).  This is further simplified: it is possible to make any character a macro character, but not to make a macro character into an ordinary character.



John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
Henry S. Thompson said, / "Syntactic, structural,
Value constraints we / Express on the fly."
Simon St. Laurent: "Your / Incomprehensible
Abracadabralike / schemas must die!"