That will work if your namespace has `open-input-bytes`, etc. It might
be better to use `racket_dynamic_require` to specifically get the
functions from `racket/base`, applying each with `racket_apply`.
A better strategy might be to have a function that combines all of
these pieces in an embedded
Fantastic, thank you for getting me on my way. I followed your advice where I
do not use string-producing expressions and ended up with a follow up question.
New syntax classes are below for those reading.
(define (unbounded? v)
(equal? "*" v))
(define-syntax-class racket-version-or-*
Several months have passed since I started this thread.
I have finally decided to write a blog series about this experiment.
There are seven posts planned, the first four of which are already
published:
- General introduction
Based on what you have written so far, the `versions` macro has no
sub-expressions, so you shouldn't use `expr/c` at all. It requires version
bounds to be in the form of literal strings. So you could describe the
macro using a grammar as follows:
Expression ::= | (versions Version ...)
4 matches
Mail list logo