Какое правильное расширение файла схемы?
Файлы схемы языка программирования являются условными либо для расширения .scm
, либо .ss
.
Мне интересно, что такое история этих расширений, а также в правильном использовании, хотя кажется, что универсальное отношение состоит в том, что это все, что вы предпочитаете, и это не имеет значения, но, возможно, я ошибаюсь что.
Ответы
Ответ 1
Нет правильного расширения Схемы. Я просмотрел R [567] RS и не указан.
Это преднамеренно, поскольку Приложение F в проекте ненормативных приложений R6RS (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]
Таким образом, на самом деле для racket он без каких-либо вопросов принимает любое имя/расширение файла, но использует .ss
как расширение для R6RS и ищет файлы .sls
и .scm
, а также вы должны вручную делать то, что plt-r6rs --install
делает вручную.
В других реализациях могут потребоваться ручные способы установки библиотеки, но это все равно не имеет никакого отношения к языку схемы, поскольку спецификация оставила эту часть вне ее реализацией.
Ответ 2
Вот список всех расширений имен, связанных с Scheme, с которыми я сталкивался. После каждого расширения есть предположение о его расширении в кавычках. Если какая-то информация неверна или отсутствует, пожалуйста, прокомментируйте.
Общие расширения для Схемы
.scm
("Схема") - исходный код схемы, написанный для R5RS, R6RS, R7RS или любой другой реализации и стандарта. Это наиболее распространенное и обычно предпочтительное расширение для исходных файлов Scheme.
.sps
("Источник программы Scheme") - Программа R6RS Scheme. Насколько я могу судить, не сильно отличается от .scm
, но, думаю, это расширение означает, что файл содержит основную программу и, следовательно, его имя можно передать интерпретатору Scheme для запуска программы.
.sls
("Источник библиотеки схем") - форма R6RS (library...)
которая содержит как объявления интерфейса, так и реализацию библиотеки. Вы найдете их в пакетах Акку, например.
.sld
("Определение библиотеки схем") - форма R7RS (define-library...)
. Эта форма содержит только декларации. Он использует (include...)
для включения фактических исходных файлов .scm
библиотеки. Вы будете в пакетах Snow, например.
Расширения для языков, производных от Scheme
.rkt
("Racket") - исходный код ракетки. Racket поддерживает R6RS Scheme, R7RS Scheme (через сторонний пакет), свой собственный диалект (также называемый Racket), который теперь немного расширился от R6RS, и довольно много языков, которые практически не имеют ничего общего со Scheme. Каждый файл .rkt
начинается со строки типа #lang racket/base
чтобы .rkt
на каком языке этот файл написан.
.scr
("Scribe") - текстовый документ, написанный на Scheme Scribe, языке разметки, по духу похожему на TeX/LaTeX, но со Scheme в качестве макроязыка. Примечание. Оригинальный язык разметки Scribe 1980 года не использовал Scheme.
.scrbl
("Scribble") - текстовый документ, написанный на Scribble, современной версии Scheme Scribe. Интерпретаторы Scribble были реализованы как минимум для Racket и Chibi Scheme.
Редкие расширения для Схемы
.ss
("Источник схемы") - Редкий эквивалент .scm
. Пожалуйста, предпочтите .scm
.
.sc
("Схема") - Редкий эквивалент .scm
. Пожалуйста, предпочтите .scm
.