Определите, работает ли Guile в интерактивном режиме - PullRequest
1 голос
/ 07 апреля 2019

Как проверить, работает ли Guile в интерактивном режиме?

Цель состоит в следующем: реализовать обработчик исключений таким образом, чтобы, если он не работает в интерактивном режиме, исключения печатали сообщение и выходили из Guile, в противном случае они должны печатать сообщение.и ничего не делать (т.е. вернуться в REPL).

1 Ответ

2 голосов
/ 12 апреля 2019

Возможно, есть лучший способ, но у меня есть одно предложение.в вашем .guile определите переменную от *interactive* до #t в модуле guile, например, через

(module-define! (resolve-module '(guile)) '*interactive* #t)

Насколько я знаю, .guile выполняется именно тогда, когда guile является интерактивным, а не когда запускается как программа.

тогда вы можете определить следующую проверку

(define (interactive?) (module-defined? (resolve-module '(guile)) '*interactive*)
...