Как запустить (интерпретировать) программу Scheme, хранящуюся в файле?
На данный момент я использую REPL-функцию схемы Petite-Chez. Это хорошо работает для небольших примеров и т. Д.
Однако, как я могу сохранить всю программу в файле ".scm", а затем запустить (интерпретировать) ее из командной строки? Я знаком с командой (load "C:/.."), но это только загрузка определений из файла в REPL.
Как мне запускать программы, использующие Scheme, как программы на C/C++, где я компилирую, а затем выполняю двоичный файл ".exe"?
Благодарю.
2 ответа
Вкратце, вы просто пишете свою программу в файл, ставите #!/usr/bin/scheme --script
в качестве первой строки программы, отметьте ее как исполняемый и запустите. Вот пример сценария, который эмулирует Unix echo
команда:
#!/usr/bin/scheme --script
(let ([args (cdr (command-line))])
(unless (null? args)
(let-values ([(newline? args)
(if (equal? (car args) "-n")
(values #f (cdr args))
(values #t args))])
(do ([args args (cdr args)] [sep "" " "])
((null? args))
(printf "~a~a" sep (car args)))
(when newline? (newline)))))
Подробности смотрите в разделе 2.6 " Использование схемы Chez".
Если вам нужен реальный исполняемый файл, есть несколько реализаций, которые поддерживают компиляцию в собственный исполняемый файл. Racket является одним из них, и он поддерживает множество различных версий и диалектов схем (R5RS, R6RS, Racket, ...). Есть много других. Курица (R5RS + SRFI), Гамбит (R5RS + SRFI) и Bigloo (R5RS, + SRFI) и другие.