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

Wys*_*ard 14 scheme

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

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

Syl*_*ter 15

没有适当的Scheme扩展.我浏览了R [567] RS并且未指定.

这是故意的,因为R6RS非规范性附录草案(PDF)中附录F实际上有一部分关于从库路径到文件路径的映射,但没有做出最终规范.

说到这里,Scheme程序最常见的文件扩展名是.scmR6RS和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]
Run Code Online (Sandbox Code Playgroud)

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

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


Las*_*ssi 5

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

计划的常见扩展

.scm“方案”)-为R5RS,R6RS,R7RS或任何其他实现和标准编写的方案源代码。这是Scheme源文件的最常见且通常首选的扩展名。

.sps“方案程序源”-R6RS Scheme程序。.scm就我所知,这并没有什么不同,但是我想此扩展名表示该文件包含一个主程序,因此可以将其名称传递给Scheme解释器以运行该程序。

.sls“方案库源代码”)-一种R6RS (library ...)表单,其中包含接口声明和库实现。例如,您可以在Akku 软件包中找到它们。

.sld“方案库定义”)-一种R7RS (define-library ...)形式。该表格仅包含声明。它用于(include ...)包括.scm库的实际源文件。例如,您将在Snow软件包中使用它们。

方案衍生语言的扩展

.rkt“球拍”)-球拍源代码。Racket支持R6RS方案,R7RS方案(通过第三方程序包),自己的方言(也称为Racket),该方言现在已从R6RS扩展了很多,并且有许多语言与Scheme无关或无关。每个.rkt文件都以一行开始,例如#lang racket/base说该文件所用的语言。

.scr“ Scribe”)-用Scheme Scribe编写的文本文档,Scheme是一种标记语言,其精神类似于TeX / LaTeX,但使用Scheme作为宏语言。注意:1980年以来原始Scribe标记语言未使用Scheme。

.scrbl“ Scribble”)-用Scribble(Scheme Scribe的现代版本)编写的文本文档。至少在球拍和赤壁计划中使用了杂文翻译。

计划的稀有扩展

.ss“方案来源”)-稀有等于.scm。请选择 .scm

.sc“方案”)-等效于.scm。请选择.scm