是否有一种标准化的方法来加载 SRFI



在鸡中,看起来我可以(use srfi-9),但在 Guile 中看起来像你说(use-modules (srfi srfi-9)),在球拍中它是(require srfi/9) . 是否有一个标准化的use-module表单应该适用于所有方案实现(以便我可以编写可移植代码)?

是的

,在 R6RS 和 R7RS 中,使用:

(import (srfi …))

import是这方面的"标准形式"。 麻烦的是可能取决于实现。 所以问题下移了一个层次。 我见过:

(import (srfi :0))
(import (srfi srfi-0)

在不同的实现中。

对于 R6RS 和 R7RS,有一种加载库的方法,所以它确实应该是可能的。我知道你可以做(import (srfi :9)),它适用于Ikarus和Racket。我不确定命名约定应该是什么是否存在标准,因此在其他实现中可能会有所不同。您可能需要为某些实现制作包装器。

在 R5RS 中,您必须翻录引用实现并使用 load 。这根本不会使用实现优化的代码。我见过一些项目,它们使特定于实现的启动文件利用它们支持的内容,并为那些无法获得最佳性能的人添加代码。

相关内容

  • 没有找到相关文章

最新更新