Какое правильное расширение файла схемы?

Файлы схемы языка программирования являются условными либо для расширения .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.