Как проверить, работает ли Guile в интерактивном режиме?
Цель состоит в следующем: реализовать обработчик исключений таким образом, чтобы, если они не выполняются в интерактивном режиме, исключения должны были печатать сообщение и выходить из Guile, в противном случае они должны печатать сообщение и ничего не делать (т. е. возвращаться в REPL).
Там может быть лучший способ, но у меня есть одно предложение. в вашем .guile определите переменную от *interactive*
до #t
в модуле guile, например.
(module-define! (resolve-module '(guile)) '*interactive* #t)
Насколько я знаю, .guile выполняется именно тогда, когда guile интерактивен, а не когда он запускается как программа.
то вы можете определить следующую проверку
(define (interactive?) (module-defined? (resolve-module '(guile)) '*interactive*)