Maybe it would be good to have official support for safe 3D values.
I realized after I wrote the `images/compile-time' module that it was
just a special case. It could be extended to handle anything
serializable. Having to serialize values at expansion time and
unserialize them at runtime
Thanks for the explanation. I think i understand now what i did wrong.
The 3D syntax was a good hint for further reading. I digged up a thread*
where you already had to explain it 10 years ago :)
On Thu, 26 Jul 2012
I am almost sure there are additional explanations of 3d syntax and its
problems between then and now.
When we (re)discovered 3d syntax at IU in 1984, we thought it was better than
sliced bread. So it is natural that many other people re-discover it and want
to use it in Racket.
i have the following two files, one that only requires the other and
calls a macro and the other one that defines that macro:
(struct s (arg) #:transparent)
(define (fun arg)
I agree that it's a bug, in a sense, that your program runs even though
it cannot be compiled.
This is an example of 3-D syntax: you're embedding a value (i.e., an
instance of `s') that you can't write as a literal into the result of a
macro expansion. I think 3-D syntax probably should not be
Mail list logo