1

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

4

2 回答 2

3
于 2014-02-16T15:34:07.170 回答
1

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

在 R5RS 中,您必须撕掉参考实现并使用load. 这根本不会使用实现优化的代码。我见过一些项目使特定于实现的开始文件利用他们支持的内容并为那些没有获得最佳性能的人添加代码。

于 2014-02-16T15:37:56.550 回答