At Thu, 16 Dec 2010 19:55:40 +0100, Manfred Lotz wrote: > It is not quite clear to me how package, library and modules > relate together.
At Thu, 16 Dec 2010 20:50:47 -0800, prad wrote: > On Thu, 16 Dec 2010 19:55:40 +0100 > Manfred Lotz <manfred.l...@arcor.de> wrote: > > > I further assume that, e.g. (require something) imports a module > > named something. The next question is where and how to set a module > > path. > > > i like to know about this too. > > following the ideas in the modules section of the guide > (http://docs.racket-lang.org/guide/module-basics.html), i found my > collects directory: > ~/.racket/5.0.2/collects > > but when i put a file utils (or utils.rkt) in there my > (require utils) > gives > stdin::254: utils: standard-module-name-resolver: collection not found: > error "Library" and "module" are synonyms, more or less, because a library is implemented by a module. A "collection" consists of a set of libraries and sub-collections that are normally grouped together into a directory. That is, a collection is implemented as a directory. A "collects" directory like "~/.racket/5.0.2/collects" holds collections, not libraries or modules. The term "package" is roughly a synonym for "collection", especially as distributed via Planet. When a library is installed in a collection, you refer to it using a path of collection and sub-collection names followed by a module name. As a special case, a top-level collection name can be used as a library name, which is just a shorthand for the collection name followed by the module name "main". So, (require utils) is a shorthand for (require utils/main) Putting "utils.rkt" in a "collects" directory like "~/.racket/5.0.2/collects" doesn't work because a single file cannot be a collection. Instead, create "utils/main.rkt". _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users