编程语言Scheme的文件按照惯例,可以是扩展名.scm
或.ss
。
我对这些扩展的历史以及正确使用的内容感兴趣,但似乎普遍的态度是它只是你喜欢的任何东西而且它并不重要,但也许我错了。
答案 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
。