This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.
Source for wiki MinimalSyntaxCaseCowan version 1
author
cowan
comment
ipnr
198.185.18.207
name
MinimalSyntaxCaseCowan
readonly
0
text
From [http://tmp.barzilay.org/foof.txt Eli Barzilay's posting], lightly edited for continuity:
The "minimal API" of a ''syntax-case'' system is made of `syntax-case`, `syntax`, `syntax->datum`, and `datum->syntax`.
With `syntax-case` it is extremely straightforward to create something like `syntax-e` if it's not built in -- and `syntax-case` itself is then ''no longer necessary''; `syntax->datum` can be done in exactly the same way (applied recursively), so it's just a convenience. This leaves you with two things: `syntax` as a core lexical-scope-preserving quotation notation, and `datum->syntax` as a way to construct new identifiers unhygienically. `Datum->syntax` is therefore the only real "complex API" here, and it's complexity is (very unsurprisingly) very similar to explicit renaming or syntactic closures, since in all three cases you take a symbol and choose a lexical scope to put it in.
[Is this really sufficient?]
time
2012-06-09 04:05:36
version
1