确定Guile是否正在交互式运行

时间:2019-04-07 08:13:05

标签: scheme guile

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

目的如下:实现一个异常处理程序,以便如果不以交互方式运行,则异常应打印一条消息并退出Guile,否则它们应打印一条消息而不执行任何操作(即返回REPL)。

1 个答案:

答案 0 :(得分:2)

也许有更好的方法,但是我有一个建议。在您的.guile中,例如通过

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

据我所知.guile是在guile是交互式的而不是作为程序运行时准确执行的。

然后您可以定义以下检查

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