什么是正确的方案文件扩展名?

时间:2016-03-26 20:39:27

标签: scheme

编程语言Scheme的文件按照惯例,可以是扩展名.scm.ss

我对这些扩展的历史以及正确使用的内容感兴趣,但似乎普遍的态度是它只是你喜欢的任何东西而且它并不重要,但也许我错了。

2 个答案:

答案 0 :(得分:13)

没有适当的Scheme扩展。我通过R [567] RS浏览了它并没有指定。

这是故意的,因为Appendix F in a R6RS Non-Normative Appendices draft (PDF)实际上有一部分关于从库路径到文件路径的映射,但没有做出最终规范。

说到这里,Scheme程序最常见的文件扩展名是.scm,R6RS和R7RS中添加了其他扩展,实现者可以区分库和主程序。

事实上,实现需要确保的唯一方法是有一种方法来安装"一个库,通常是一个需要映射到源代码中的库名的文件。在Racket的R6RS中,这是由安装程序完成的:

plt-r6rs --install test.xxx 
[installing /home/westerp/.racket/6.4/collects/examples/hello.ss]
[Compiling /home/westerp/.racket/6.4/collects/examples/hello.ss]

事实上,对于球拍,它毫无疑问地接受任何文件名/扩展名,但它使用.ss作为R6RS的扩展名,它也会查找.sls.scm文件手动执行plt-r6rs --install手动执行的操作。

其他实现可能需要手动方式来安装库,但它仍然与Scheme语言无关,因为规范将此部分留待实现解决。

答案 1 :(得分:1)

这是我所有与方案相关的文件扩展名的列表 遇到。在每个扩展名之后是对其扩展的猜测 引号。如果某些信息有误或缺失,请发表评论。

方案的通用扩展名

.scm“方案” )-为R5RS,R6RS, R7RS或任何其他实现和标准。这是最 Scheme源文件的通用扩展名。

.sps“方案程序源” )-一个 R6RS 方案程序。不 据我所知,它与.scm确实有很大不同,但我想这是 扩展名表示文件包含一个主程序,因此 其名称可以传递给Scheme解释程序以运行该程序。

.sls“方案库源代码” )- R6RS (library ...)格式 包含接口声明和库 实施。您将在Akku中找到这些 包。

.sld“方案库定义” )-一个 R7RS (define-library ...)表格。该表格仅包含声明。它 使用(include ...)来包含实际的.scm源文件 图书馆。您可以将它们放在Snow包中, 例子。

方案源语言的扩展名

.rkt“球拍” )-球拍源代码。球拍支持R6RS 方案,R7RS方案(通过第三方程序包),自己的方言 (也称为Racket),它已经从R6RS扩展了很多功能,并且 很多与Scheme无关或无关的语言。 每个.rkt文件都以#lang racket/base之类的行开头 该文件使用哪种语言。

.scr“抄写员” )-用Scheme Scribe编写的文本文档, 标记语言在本质上与TeX / LaTeX类似,但使用Scheme作为 宏语言。注意:original Scribe markup language from 1980没有 使用方案。

.scrbl“ Scribble” )-用Scribble编写的文本文档, 计划抄写员的现代版本。随意翻译已经 至少在球拍和赤壁计划中实施过。

计划的稀有扩展名

.ss“方案来源” )-很少与.scm等效。请喜欢 .scm

.sc“方案” )-很少与.scm等效。请选择.scm