1. ホーム
  2. scheme

[解決済み] schemeのファイル拡張子は何ですか?

2022-02-04 19:47:15

質問事項

プログラミング言語Schemeのファイルは、慣習上、拡張子が .scm または .ss .

これらの拡張機能の歴史はどうなっているのか、また、正しい使い方にも興味があります。ただ、「好きなようにすればいい、問題ない」というのが世界共通の姿勢のようですが、もしかしたら、それは間違っているのかもしれませんね。

どのように解決するのか?

適切なScheme拡張子がありません。R[567]RSを閲覧しましたが、指定されていません。

のように意図的なものです。 R6RS Non-Normative Appendicesドラフト(PDF)のAppendix F 実は、ライブラリパスからファイルパスへのマッピングに関する部分があったのですが、最終的な仕様にはなりませんでした。

とはいえ、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言語とは無関係なのです。