如何测试Guile是否交互运行?
目的如下:实现一个异常处理程序,以便如果不以交互方式运行,则异常应打印一条消息并退出Guile,否则它们应打印一条消息而不执行任何操作(即返回REPL)。
答案 0 :(得分:2)
也许有更好的方法,但是我有一个建议。在您的.guile中,例如通过
在guile模块中定义一个*interactive*
到#t
的变量
(module-define! (resolve-module '(guile)) '*interactive* #t)
据我所知.guile是在guile是交互式的而不是作为程序运行时准确执行的。
然后您可以定义以下检查
(define (interactive?) (module-defined? (resolve-module '(guile)) '*interactive*)