Dear Peter,

Thank you for your reply. And what really concerns me include these following points:

1. SRFI-97 omitted lexical syntax modification and SRFI-261 inherits
   its most rules basically, so these lexical syntax modification SRFIs
   accordingly should be omitted.
2. I also asked myself if I have the ability, based on my experience,
   to make a clear decision on the reader syntax and give each SRFI a
   name. However I can't. Because my experience is mainly in Chez
   Scheme, and as we all know, it mainly follows the R6RS standard.
   R6RS standard doesn't seem to specify how to correctly process
   reader syntax.

Peter, I agree with your thoughts on the reader syntax related proposals and believe that they are an ultimate goal for many similar proposals, including this one. However, I'm afraid this step should not be accomplished by me and the proposal I wrote, but by more capable and courageous individuals in the community.

Yours sincerely,

WANG Zheng

2025-07-12


在 7/12/25 05:19, Peter McGoron 写道:
Reader syntax is what the R6RS report calls "lexical syntax" (section 4 of R6RS). Reader syntax is stuff that the `read` procedure handles. This is stuff like vectors, strings, symbols, and lists. Reader syntax is different from syntax like `(lambda (x) ...)` or `syntax-rules` (what R6RS calls the "program syntax") because reader syntax is character based.

Some of the SRFIs add new reader syntax to Scheme, and the library system in R6RS/R7RS has no way to import new reader syntax. However, some of the SRFIs also add new procedures. SRFIs that add new procedures should be given library names, because the new procedures should be stored in a library.

For example, SRFI-4 adds #u8, #s16, #u32, etc. as reader syntax for constant fixed-width vectors. It also adds u8vector-ref, s16vector-ref, u32vector-ref, etc. as procedures. SRFI-261 should give SRFI-4 a library name, because it has procedures that one could import, even if it reader syntax modifications unspecified. That is because I should be able to import `(srfi srfi-4)` or `(srfi numeric-vectors-4)` and get those procedures.

Reply via email to