r7rs-small-texinfo

Unnamed repository; edit this file 'description' to name the repository.
git clone https://kaka.farm/~git/r7rs-small-texinfo
Log | Files | Refs | README

commit 9322c3efa204d190ce82225a3d85d9a22929783a
parent 1ebe73ade64ee194205bd6ed81b8bffdcda0e0ed
Author: Wolfgang Corcoran-Mathe <wcm@sigwinch.xyz>
Date:   Wed,  7 Feb 2024 21:40:59 -0500

Expressions: Indexing, part 2.

Diffstat:
Mdoc/r7rs-small/derived/delayed-evaluation.texinfo | 2++
Mdoc/r7rs-small/derived/quasiquotation.texinfo | 3+++
Mdoc/r7rs-small/macros.texinfo | 13+++++++++++++
3 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/doc/r7rs-small/derived/delayed-evaluation.texinfo b/doc/r7rs-small/derived/delayed-evaluation.texinfo @@ -1,6 +1,8 @@ @node Delayed evaluation @subsection Delayed evaluation +@cindex promise + @deffn {lazy library syntax} delay @svar{expression} The @code{delay} construct is used together with the procedure @code{force} to diff --git a/doc/r7rs-small/derived/quasiquotation.texinfo b/doc/r7rs-small/derived/quasiquotation.texinfo @@ -1,6 +1,9 @@ @node Quasiquotation @subsection Quasiquotation +@cindex backquote +@cindex comma + @c FIXME: deffn doesn't handle the ` line correctly. @deffn syntax quasiquote @svar{qq template} @deffnx syntax `@svar{qq template} diff --git a/doc/r7rs-small/macros.texinfo b/doc/r7rs-small/macros.texinfo @@ -8,11 +8,18 @@ Scheme programs can define and use new derived expression types, called @code{(}@svar{keyword} @svar{datum} @dots{}@code{)} @end display +@cindex syntactic keyword +@cindex keyword +@cindex macro keyword + where @svar{keyword} is an identifier that uniquely determines the expression type. This identifier is called the @dfn{syntactic keyword}, or simply @dfn{keyword}, of the macro. The number of the @svar{datum}s, and their syntax, depends on the expression type. +@cindex macro use +@cindex macro transformer + Each instance of a macro is called a @dfn{use} of the macro. The set of rules that specifies how a use of a macro is transcribed into a more primitive expression is called the @dfn{transformer} of the macro. @@ -31,6 +38,9 @@ a pattern language for specifying macro transformers. @end itemize +@cindex syntactic keyword +@cindex keyword + The syntactic keyword of a macro can shadow variable bindings, and local variable bindings can shadow syntactic bindings. Two mechanisms are provided to prevent unintended conflicts: @@ -52,6 +62,9 @@ macro. @end itemize +@cindex hygienic +@cindex referentially transparent + In consequence, all macros defined using the pattern language are ``hygienic'' and ``referentially transparent'' and thus preserve Scheme's lexical scoping. [@ref{Kohlbecker86}, @ref{hygienic}, @ref{Bawden88},