交互判断Guile是否运行

Determine whether Guile is running interactively

如何交互测试Guile是否运行?

目的如下:实现一个异常处理程序,如果不是 运行 交互,异常应该打印一条消息并退出 Guile,否则它们应该打印一条消息并且什么也不做(即 return 到 REPL).

可能有更好的方法,但我有一个建议。在你的 .guile 中通过例如

在 guile 模块中定义一个变量 *interactive*#t
(module-define! (resolve-module '(guile)) '*interactive* #t)

据我所知,.guile 恰好在 guile 交互时执行,而不是在 运行 作为程序时执行。

那么你可以定义如下检查

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