4 ms·
> (but I don’t buy the argument that “real” macros are only able in s-exprs) The Rhombus project in Racket^1 is an attempt to fix a lot of things about Racket
by Decabytes 4y ago
> (but I don’t buy the argument that “real” macros are only able in s-exprs)
The Rhombus project in Racket^1 is an attempt to fix a lot of things about Racket and S-exprs but one of the goals is creating a syntax that is able to be manipulated as easily a s-exprs.
> By “macro-extensible,” we mean that Rhombus users should be able to extend the syntax of Rhombus in much the same way that Racket users can extend the syntax of Racket. Complex syntactic extensions such as object and class systems, static type checkers, and pattern matching should be implemented as libraries while still providing a surface syntax familiar to users of these features in other languages.
1. https://github.com/racket/rhombus-prototype/blob/master/resources/state-of-rhombus.md https://github.com/racket/rhombus-prototype/blob/master/reso...
- wtetzner 4y agoSee also Honu: https://www.cs.utah.edu/plt/publications/gpce12-rf.pdf https://www.cs.utah.edu/plt/publications/gpce12-rf.pdf
- Decabytes 4y ago> The surface syntax is responsible for some grouping, but not all. This requires that the parser understand the program’s bindings and expand macros to get a complete picture of a program’s structure. Interleaving the parsing of a token stream with macro expansion in this fashion is called enforestation, and it allows macros to extend the syntax of conventional languages. The Honu research language pioneered this technique. Rhombus takes inspiration from Honu!