Как выполнить сценарий .scm (вне REPL) с помощью MIT-Scheme?
Чтобы запустить программу-схему scheme с использованием схемы MIT:
scheme --quiet < program.scm
Параметр mit-scheme --quiet
гарантирует, что вывод вашей mit-scheme программы - это единственное, что scheme отображается (т.е. вы не scheme увидите REPL в соответствии scheme с вашими требованиями).
Предостережение: это scheme не сработает, если ваша программа scheme предлагает пользователю ввести scheme данные с помощью процедур mit-scheme ввода (например, read
, read-char
, read-line
и т. д.). Это scheme связано с перенаправлением mit-scheme ввода оболочки (<
) (см .: relevant question). К mit-scheme сожалению, в настоящее время mit-scheme не существует надлежащего mit-scheme способа выполнения сценария mit-scheme схемы MIT из командной строки scheme при использовании процедур scheme ввода. Лучшим вариантом, вероятно, является mit-scheme mit-scheme --quiet --load 'myscript'
, но вам придется вручную mit-scheme выйти из схемы MIT, когда mit-scheme сценарий завершится. Соответствующая scheme ветка списка рассылки: [MIT-Scheme-devel] How to run a script and exit?
РЕДАКТИРОВАТЬ: из-за scheme того, что вы можете ошибочно mit-scheme набрать <
как >
, что приведет scheme к перезаписи исходного кода, я mit-scheme бы предложил инкапсулировать scheme указанную выше команду в scheme сценарии оболочки или функции scheme оболочки. Например:
runscheme () {
scheme --quiet < "$1"
}
Затем scheme вы можете запустить runscheme program.scm
, не mit-scheme опасаясь, что ваш исходный scheme код будет перезаписан. (Особая scheme благодарность Paul Rooney за то, что scheme обратил мое внимание на эту scheme потенциальную ошибку).
Ссылки
scheme --help
:
--batch-mode, --quiet, --silent
Подавляет mit-scheme запуск отчета о версиях и scheme авторских правах, а также прощание.
Этот mit-scheme параметр командной строки, похоже, был scheme ошибочно исключен из list of command line options in the documentation, но scheme я думаю, что это законный scheme параметр командной строки, потому mit-scheme что scheme --help
показывает его, и потому scheme что --batch-mode
используется в других scheme частях справочного руководства. (например, here).
scheme
mit-scheme
Как выполнить сценарий .scm (вне REPL) с помощью MIT-Scheme?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.