Scheme Racket-需要完整的文件目录

Scheme Racket-需要完整的文件目录,scheme,lisp,racket,require,Scheme,Lisp,Racket,Require,目前,我必须在每个文件的顶部执行此操作: (require "dynamore/dynamore.rkt") (require "dynamore/db.rkt") (require "dynamore/types.rkt") 我希望能够做到以下几点: (require dynamore) 最好不用开发我自己的收藏 如果您不希望创建包(这意味着您需要相对地要求): 如果dynamore仅包含这三个文件,则可以使用重新提供lang,如下所示:(require(glob in“dynamore/

目前,我必须在每个文件的顶部执行此操作:

(require "dynamore/dynamore.rkt")
(require "dynamore/db.rkt")
(require "dynamore/types.rkt")
我希望能够做到以下几点:

(require dynamore)

最好不用开发我自己的收藏

如果您不希望创建包(这意味着您需要相对地
要求
):

  • 如果
    dynamore
    仅包含这三个文件,则可以使用
    重新提供lang
    ,如下所示:
    (require(glob in“dynamore/*.rkt”)
  • 您还可以在
    dynamore
    中创建
    main.rkt
    ,它使用
    reprovide lang
    专门重新提供这三个文件:

    #lang reprovide
    "dynamore.rkt"
    "db.rkt"
    "types.rkt"
    
    要使用它,只需
    (需要“dynamore/main.rkt”)

    • 不使用
      重新提供lang
      的本机解决方案将手动使用:

      #lang racket/base
      (require "dynamore.rkt"
               "db.rkt"
               "types.rkt")
      (provide (all-from-out "dynamore.rkt"
                             "db.rkt"
                             "types.rkt"))
      
  • 如果您希望创建一个包,则遵循上面的解决方案2(创建
    main.rkt
    等),在
    dynamore
    目录中创建
    info.rkt
    ,如下所示:

    #lang info
    (define collection "dynamore")
    
    然后运行
    raco pkg安装
    。从现在起,您将能够从任何地方
    (需要dynamore)


    注意:要安装
    reprovide lang
    ,运行
    raco pkg安装reprovide lang

    作为备用,您不需要3个不同的
    all from out
    ,您可以将所有3个文件放在一个
    all from out
    中,就像
    一样(提供(all from out“dynamore.rkt”“db.rkt”“types.rkt”)
    编辑!另外,@AlexKnauth是
    reprovidelang
    的作者。谢谢你的精美包装!非常感谢您提供信息丰富的答案!