[racket] How to make an identifier that will have a certain binding no matter what phase level it's referenced at?

From: Alexander D. Knauth (alexander at knauth.org)
Date: Sun Jul 27 12:21:36 EDT 2014

I just tried to try it and see if it worked, when I realized that it won’t work because I can’t use quote-syntax.  

Is there any way to get around that?  And would it even work anyway?  

On Jul 27, 2014, at 6:59 AM, Roman Klochkov <kalimehtar at mail.ru> wrote:

> Maybe via "Cross-Phase Persistent Module Declarations" http://docs.racket-lang.org/reference/syntax-model.html#%28part._cross-phase._persistent-grammar%29 ?
> 
> 
> Thu, 24 Jul 2014 21:24:20 -0400 от "Alexander D. Knauth" <alexander at knauth.org>:
> How can I make an identifier that will have a certain binding no matter what phase level it's referenced at?
> 
> For example if I’m making a reader extension that will produce a lambda expression, how do I make it so that the lambda expression will be able to exist at any phase level?
> 
> For example this program using #lang rackjure doesn’t work:
> #lang rackjure
> (require (for-meta 1 racket/base)
>          (for-meta 2 racket/base)
>          (for-meta 3 racket/base)
>          (for-meta 4 racket/base)
>          )
>                                                                                              
> #λ(* 2 %) ; works, produces approx. (lambda (%) (* 2 %))
> (begin-for-syntax
>   (begin-for-syntax
>     #λ(* 2 %) ; lambda: unbound identifier at phase 2;
>     ;         ;   also, no #%app syntax transformer is bound in: lambda
>     ))
> 
> Is there any way to construct an identifier that would be bound to lambda from racket/base no matter what phase level it’s used in?
> 
> 
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
> 
> 
> 
> -- 
> Roman Klochkov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20140727/8e294cee/attachment.html>

Posted on the users mailing list.