Racket 链接文件包含项
我有一个文件,Racket 链接文件包含项,racket,Racket,我有一个文件,configuration.rkt: (定义文件路径“path/to/file.rkt”) 然后我有了“main”文件program.rkt,我想在其中包括文件路径指定的文件。我试过这种方法,但不起作用: (include "configuration.rkt") (include file-path) 我能做什么?使用require而不是include 使用require而不是include 正如@soegaard所说,您希望通过require使用Racket的模块系统,而不是
configuration.rkt
:
(定义文件路径“path/to/file.rkt”)
然后我有了“main”文件program.rkt
,我想在其中包括文件路径指定的文件。我试过这种方法,但不起作用:
(include "configuration.rkt")
(include file-path)
我能做什么?使用require
而不是include
使用require
而不是include
正如@soegaard所说,您希望通过require
使用Racket的模块系统,而不是通过文本包含源文件。这会让你省去很多悲伤
我注意到您似乎希望在运行时确定源文件的选择
如果是,有两种选择:
你可以用
你可以用。例如:
config.rkt:
#lang racket
(provide to-be-required)
(define to-be-required "foo.rkt")
foo.rkt:
#lang racket
(provide foo-value
foo-proc)
(define foo-value "I am from foo.rkt and I was dynamic-required!")
(define (foo-proc)
"I am foo-proc.")
main.rkt
#lang racket
(require "config.rkt")
(printf "Let's dynamic-require ~a, as config.rkt said.\n" to-be-required)
(define foo-value (dynamic-require to-be-required 'foo-value))
(define foo-proc (dynamic-require to-be-required 'foo-proc))
foo-value
(foo-proc)
输出:
Let's dynamic-require foo.rkt, as config.rkt said.
"I am from foo.rkt and I was dynamic-required!"
"I am foo-proc."
正如@soegaard所说,您希望通过require
使用Racket的模块系统,而不是以文本形式包含源文件。这会让你省去很多悲伤
我注意到您似乎希望在运行时确定源文件的选择
如果是,有两种选择:
你可以用
你可以用。例如:
config.rkt:
#lang racket
(provide to-be-required)
(define to-be-required "foo.rkt")
foo.rkt:
#lang racket
(provide foo-value
foo-proc)
(define foo-value "I am from foo.rkt and I was dynamic-required!")
(define (foo-proc)
"I am foo-proc.")
main.rkt
#lang racket
(require "config.rkt")
(printf "Let's dynamic-require ~a, as config.rkt said.\n" to-be-required)
(define foo-value (dynamic-require to-be-required 'foo-value))
(define foo-proc (dynamic-require to-be-required 'foo-proc))
foo-value
(foo-proc)
输出:
Let's dynamic-require foo.rkt, as config.rkt said.
"I am from foo.rkt and I was dynamic-required!"
"I am foo-proc."