On Feb 27, 2012, at 5:33 PM, Rüdiger Asche wrote: > Thanks again - but there is something in path resolution policy I don't > understand - why does this one here: > > (parameterize ([current-directory "f:"]) > (load "suchandsuch.scs")) > > give the expected result (reads the file from f:), but this one here: > > (parameterize ([current-directory "f:"]) > (include "othersuch.scs"))
The docs say "(include ...) Inlines the syntax in the file designated by path-spec in place of the include expression." but parameterize sets the current directory at run-time (e.g., for read, load, and other actions). Do you want this: ;; foo.rkt: (define x (+ y 10)) ;; bar.rkt: #lang racket (let ([y 3]) (include-at/relative-to 'here "foo.rkt" "foo.rkt") x) > > doesn't (raises error stdin::196512: include: can't open include file > (open-input-file: cannot open input file: "D:\install\racket\othersuch.scs" > (Das System kann die angegebene Datei nicht finden.; errno=2)) at: > #<path:D:\install\racket\othersuch.scs> in: (include "othersuch.scs")) ? I > read the docs to use current-directory consistently on load and include? > > ----- Original Message ----- From: "Danny Yoo" <d...@cs.wpi.edu> > To: "Rüdiger Asche" <r...@ruediger-asche.de> > Cc: <users@racket-lang.org> > Sent: Monday, February 27, 2012 6:22 PM > Subject: Re: [racket] Splitting Racket source code by scope? > > > On Mon, Feb 27, 2012 at 11:38 AM, Rüdiger Asche <r...@ruediger-asche.de> > wrote: >> I'd like to split the components of my Racket project into multiple files >> according to this structure: >> >> contents of file1: >> >> (letrec ((id1 body1) >> ... >> <contents of file2, see below> >> ... >> ) >> (main execution body using id1, idx, idy...) >> ) > > > As Matthias mentions, you can formally link together "units" together. > Units are Racket's dependency-injection component framework. You can > read documentation about them here: > > http://docs.racket-lang.org/guide/units.html > > > Although there are other mechanisms for textually substituting the > content of one file within another, such as the racket/include > library: > > http://docs.racket-lang.org/reference/include.html > > because you mentioned components in your question, the racket/unit > framework might be more suitable for your purposes. > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users