scheme - 如何检测 MIT Scheme 的版本?

标签 scheme mit-scheme

有没有一种方法可以用来检测一段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-versionget-subsystem-version-string 均在 MIT Scheme 的 src/runtime/system.scm 中定义。文件。

关于scheme - 如何检测 MIT Scheme 的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45777702/

相关文章:

scheme - 如何使用 MIT-Scheme 执行 .scm 脚本(在 REPL 之外)?

scheme - 计划中的原子是什么?

scheme - 循环形式的命名 let 是如何工作的?

recursion - Scheme 中的递归函数只返回列表中的第一项

scheme - 如何从 MIT 方案访问环境变量?

list - 获取值未列出 lisp 中的缺点

方案环境模型收敛问题

scheme - 使用流生成具有交替符号的数字的更好解释

compilation - 使用 MIT-SCHEME 编译 .scm 文件