Yi, Most #lang languages implicitly create a module from the contents of the file. #lang racket/load, on the other hand, runs the contents of the file as top-level terms outside of any module. The provide form is not legal at the top level, as it is meaningless -- there's no module to provide things from. You need to either switch back to #lang racket or remove the provide, depending on what you're trying to accomplish.
Carl Eastlund On Sun, Aug 4, 2013 at 4:12 AM, Yi Dai <plm...@gmail.com> wrote: > Hi, > > > I have the following code in a file named `foo.rkt`: > > ``` > #lang racket/load > > (provide foo) > > (define foo 'bar) > ``` > > When trying to run the code, I got the following confusing error: > > > `provide`: not at module level in: `(provide foo)` > > What does this mean? Why `provide` is not at module level? > Use `#lang racket` instead does not pose this problem. I am > confused. Any idea? > > > Yours truly, > > Yi > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users > >
____________________ Racket Users list: http://lists.racket-lang.org/users