2016-03-26 6 views
6

Dateien der Programmiersprache Schema sind per Konvention entweder der Erweiterung .scm oder .ss.Was ist die richtige Schema Dateierweiterung?

Ich bin daran interessiert, was die Geschichte dieser Erweiterungen ist, und auch in der richtigen Verwendung, obwohl es scheint, die universelle Einstellung ist, dass es nur was Sie bevorzugen und es spielt keine Rolle, aber vielleicht liege ich falsch über das.

+4

Die Dateierweiterungen sind irgendwie überall, nach meiner Erfahrung Konventionen, die sich signifikant zwischen Schema-Implementierungen unterscheiden. Um dem Stapel hinzuzufügen, haben R7RS-Bibliotheksdefinitionen begonnen, die '.sld'-Erweiterung neben' .scm'-Programmen der höchsten Ebene zu verwenden. –

Antwort

9

Es gibt keine ordnungsgemäße Scheme-Erweiterung. Ich habe R [567] RS durchsucht und es ist nicht spezifiziert.

Dies ist absichtlich wie die Appendix F in a R6RS Non-Normative Appendices draft (PDF) hatte tatsächlich einen Teil über die Zuordnung von Bibliothekspfad zu Dateipfade, die nicht die endgültige Spezifikation gemacht.

Wenn das gesagt wird, ist die häufigste Dateierweiterung für Scheme-Programme .scm und es wurden andere Erweiterungen in R6RS und vielleicht R7RS von Implementierern hinzugefügt, um Bibliothek von Hauptprogrammen zu unterscheiden.

Tatsächlich müssen die Implementierungen nur sicherstellen, dass es eine Möglichkeit gibt, eine Bibliothek zu "installieren". Dies ist normalerweise eine Datei, die dem Bibliotheksnamen im Quellcode zugeordnet werden muss. In Racket der R6RS wird dies durch ein Installationsprogramm vorgenommen:

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] 

So in der Tat für Schläger es Namen/Erweiterung jeder Datei ohne Frage akzeptiert, aber es nutzt .ss als Erweiterung für R6RS und es sieht für .sls und .scm Dateien Nun, sollten Sie manuell tun, was die plt-r6rs --install von Hand tut.

Andere Implementierungen erfordern möglicherweise manuelle Wege zum Installieren einer Bibliothek, aber es hat immer noch nichts mit der Scheme-Sprache zu tun, da die Spezifikation diesen Teil durch die Implementierungen gelöst hat.

Verwandte Themen