编程语言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语言无关,因为规范将此部分留待实现解决.
这是我遇到的所有与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。