有没有一种方法可以用来检测一段Scheme代码中使用的MITScheme的版本?
例如,我可能需要一段代码来确定它是由 MIT 方案 9.1 还是由 MIT 方案 9.2 解释,并采取相应的操作。
也许存在一个返回 MIT 方案版本号的过程(例如 (interpreter-version)
)?
最佳答案
以下是一些开源项目用来检测MITScheme版本的方法:
SLIB 使用的方法项目(文件:
mitscheme.init
):(get-subsystem-version-string "Release")
返回值示例:
"9.2"
SLIME 使用的方法项目(文件:
contrib/swank-mit-scheme.scm
):(get-subsystem-version "Release")
这将返回列表中的版本号。例如,如果您使用 MIT Scheme 版本 10.1.10,则返回值将为
'(10 1 10)
。用法示例:(if (>= (car (get-subsystem-version "Release")) 9) 'do-something-if-version-9-and-above 'otherwise-do-this-if-below-version-9)
警告:此答案中使用的过程没有记录。 get-subsystem-version
和 get-subsystem-version-string
均在 MIT Scheme 的 src/runtime/system.scm
中定义。文件。
关于scheme - 如何检测 MIT Scheme 的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45777702/