I’ve written a meta-language that adds function literal syntax to the reader, 
inspired by Clojure and Rackjure’s shorthand function literals. It uses curly 
braces for these literals, so #{+ 2 %} reads as (lambda (%) (+ 2 %)).

This actually works great, but I also want to add a feature that the shorthand 
syntax becomes a shorthand for curry if no arguments are specified, so #{+ 2} 
reads as ((curry +) 2). This works fine when the language I pass to my 
meta-language is racket, but it fails in racket/base because the curry function 
is from racket/function, which hasn’t been instantiated. This is the error I 
get:

require: namespace mismatch;
 reference to a module that is not available
  reference phase: 0
  referenced module: "~/gits/racket/racket/collects/racket/function.rkt"
  referenced phase level: 0 in: curry

Is there any way for my meta-language to force this to be instantiated whenever 
my meta-language is used? I’m using make-meta-reader from syntax/module-reader 
to implement my meta-language.

Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to