Chicken Scheme и аргументы командной строки - PullRequest
0 голосов
/ 16 мая 2019

Я пишу программу на схеме, которая должна исследовать аргументы командной строки.Я полагаю, что хороший способ получить исполняемый файл - использовать Chicken Scheme для компиляции, но затем у меня возникают проблемы:

Вот содержимое test.sch

(display (command-line))

Я вызываю компилятор следующим образом:

csc -require-extension r5rs test.sch

, который выдает следующее предупреждение:

Warning: extension `r5rs' is currently not installed

, но продолжает генерировать исполняемый файл test.Этот исполняемый файл при запуске

 $ ./test 

Error: (require) cannot load extension: r5rs

    Call history:

    ##sys#require       <--

Является ли r5rs расширением?Я так не думаю, поскольку chicken-install, кажется, не знает об этом:

 $ chicken-install r5rs

Error: unrecognized file-information - possibly corrupt transmission: "(error \"no such extension or version\" \"r5rs\" #f)"

Я думаю, мне нужно импортировать r5rs, чтобы получить процедуры (display) и (command-line).Но я не могу понять это.Буду признателен, если кто-нибудь сможет объяснить, что мне нужно сделать, чтобы эти две процедуры были связаны так, чтобы

  • Я мог проверить аргументы командной строки

  • Я могу печатать на консоли

1 Ответ

0 голосов
/ 16 мая 2019

Аргументы командной строки не являются частью R5RS или каких-либо других отчетов Схемы. Каждая реализация, которая поддерживает метод, имеет свой собственный путь, и Chicken использует встроенный параметр command-line-arguments:

$ echo '(display (command-line-arguments))' > test.scm
$ csc test.scm
$ ./test 1 2 3
(1 2 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...