Aha, yes, that seems to work. I should have thought of that, but I actually
didn’t know you can just copy all properties over with datum->syntax, haha. I
guess I should have read the docs for that more carefully.
This does seem a little bit like cheating because now the macro-generated
I'm not sure syntax-original? is really that meaningful anymore.
Another way to forge it is to use read-syntax with a string port that
has whatever you want (during a macro expansion call). And check
syntax even accepts an alternative property for those times when these
two approaches aren't
Maybe you need to copy over the properties too? This seems to work:
#lang racket/base
(require (for-syntax racket/base))
(define-syntax (import stx)
(syntax-case stx ()
[(_ (a b))
#`(require #,(datum->syntax stx
(string->symbol (format "~a/~a"
(syntax-e
I’ve been toying with the idea of making an R7RS implementation in Racket, and
one of the things I’ve implemented is the R7RS `import` form. It’s very easy to
implement in Racket, and it works fine as far as I can tell, but I can’t figure
out how to get the special binding arrows to cooperate
4 matches
Mail list logo