2 Core Remix
#lang remix | package: remix |
The main remix language has a few differences relative to the Racket reader notation.
rkt:read-square-bracket-as-paren and rkt:read-curly-brace-as-paren are #f, while rkt:read-square-bracket-with-tag and rkt:read-curly-brace-with-tag are #t. This means that literal syntax like [a b] is read as (#%brackets a b) and {a b} is read as (#%braces a b).
rkt:read-accept-dot and rkt:read-accept-infix-dot are #f, so it is not possible to use dotted pairs in the input at all. Most significantly, this means that rest arguments are defined differently in lambda.
rkt:read-cdot is #t. This means that literal syntax like a.b is read as (#%dot a b).
@ Syntax is enabled, with the default context being a <datum> piece.
Furthermore, the remix language provides few bindings. Specifically, it provides only three bindings.
syntax
(#%module-begin f ...)
syntax
(require m ...)
This allows, for example, required modules to inject code into modules that require them.
syntax
(require* m)
This allows the required module control over the expansion of the remainder of the requiring module.