Thanks! That fixed it! Although I'm still curious as to why the error happens in the first place. On Thu Nov 06 2014 at 3:32:02 PM Alexander D. Knauth <alexan...@knauth.org> wrote:
> I think I had a similar sort of problem about a year ago (I was at either > RacketCon or a Hackathon that same weekend and Mathew Flatt figured it > out), and the solution was changing (only-in path a) to (only-in path [a > a]). > > #lang racket/load > ;;provider > (module T racket > (provide a) > (define a 1)) > ;; requirer > (module R racket > (require (for-syntax syntax/parse)) > (define-syntax (test-binding stx) > (syntax-parse stx > [(_ path) > #'(let () (local-require (only-in path [a a])) a)])) > (test-binding 'T)) > ;; go > (require ‘R) > > > On Nov 6, 2014, at 4:09 PM, Spencer Florence <spen...@florence.io> wrote: > > > Hi All, > > > > I've been struggling to have a macro be given a path then require > something from that path. The following code produces and "Unbound > Identifier" error, although I would expect it to evaluate to 1. Could > someone provide insight into what is going on? > > > > #lang racket/load > > ;;provider > > (module T racket > > (provide a) > > (define a 1)) > > ;; requirer > > (module R racket > > (require (for-syntax syntax/parse)) > > (define-syntax (test-binding stx) > > (syntax-parse stx > > [(_ path) > > #'(let () (local-require (only-in path a)) a)])) > > (test-binding 'T)) > > ;; go > > (require 'R) > > > > > > P.S. I attempted to do this with `dynamic-require,` but that failed > because in my actual program `path` is sometimes `(submod "..")`, which > caused an error about not having a base path. > > > > ____________________ > > Racket Users list: > > http://lists.racket-lang.org/users > >
____________________ Racket Users list: http://lists.racket-lang.org/users