目前我必须在每个文件的顶部执行此操作:
(require "dynamore/dynamore.rkt")
(require "dynamore/db.rkt")
(require "dynamore/types.rkt")
我希望能够做这样的事情:
(require dynamore)
最好不必开发我自己的收藏。
最佳答案
如果您不想创建包(这意味着您需要相对地 require
):
dynamore
只包含这三个文件,您可以使用 reprovide-lang
的 glob-in
如下: (require (glob-in "dynamore/*.rkt"))
。 main.rkt
中创建 dynamore
,它使用 reprovide-lang
的 the main functionality 专门重新提供这三个文件:#lang reprovide
"dynamore.rkt"
"db.rkt"
"types.rkt"
要使用它,只需
(require "dynamore/main.rkt")
。reprovide-lang
的 native 解决方案是手动使用 all-from-out
:#lang racket/base
(require "dynamore.rkt"
"db.rkt"
"types.rkt")
(provide (all-from-out "dynamore.rkt"
"db.rkt"
"types.rkt"))
如果你更喜欢创建一个包,那么按照上面的解决方案2(创建
main.rkt
等),在 info.rkt
目录中创建 dynamore
如下:#lang info
(define collection "dynamore")
然后运行
raco pkg install
。从现在开始,您将可以在任何地方使用 (require dynamore)
。注意:要安装
reprovide-lang
,请运行 raco pkg install reprovide-lang
。关于scheme - Racket - 需要一个完整的文件目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57439852/