首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是球拍中的模块路径索引?

什么是球拍中的模块路径索引?
EN

Stack Overflow用户
提问于 2017-09-26 13:15:20
回答 1查看 175关注 0票数 2

Racket有模块路径 (谓词是module-path?)、解析模块路径 (谓词是resolved-module-path?)和模块路径索引 (谓词是module-path-index?)。

我想module-path?是任何有可能指向模块的东西。我猜解析模块路径指向了系统上的一个实际模块。

但是什么是模块路径索引,它能给我带来什么呢?仅仅是一个解析的模块路径?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 20:58:45

一个module-path?包含任何可以是required的东西,可以是path?,可以是符号,也可以是子模块路径(submod "food.rkt" lunch)。见文档中的require

一个resolved-module-path?是一个“绝对路径”到哪里球拍可以找到模块(注1)。与模块路径相比,解析模块路径的语法更有限(即更少模棱两可)。

module-path-index? (MPI)是从一个module-path-index?到另一个module-path-index?的增量(注2)。使用module-path-index-join构建MPI(注3)。

  • (module-path-index-join #f #f)是从当前模块到自身的增量。
  • (module-path-index-join "dumplings.rkt" #f)是从#f (当前模块)到相对路径"./dumplings.rkt" (是的,首先是路径,然后是基本路径)的增量。
  • (module-path-index-join "nom-noms.rkt" (module-path-index-join "dumplings.rkt" #f))是从当前模块到"./dumplings.rkt""./nom-noms.rkt"的增量。当一个文件静态地需要另一个文件时,Racket会生成这样的MPIs -这些文件可以链接在一起,以找到标识符的绑定。
  • (module-path-index-join '(submod test) #f)是指当前模块中的测试子模块。

希望这能有所帮助。

注1:如果模块位于文件中,则其解析路径为绝对文件路径。如果模块是在语法对象上调用eval的结果,那么它的resolved-module-path?就是另外一些东西。

注2:海事组织“模块路径三角洲”将是一个更好的名称。

注3:当前两个参数为module-path-index-join时,#f接受第三个可选参数。这允许模块引用它自己的子模块之一。一般情况下,您不希望直接使用此功能。而是使用quote-module-path

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46427622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档