Return #nil 在 Guile 扩展中

Return #nil in a Guile extension

我知道周围有几个单例可用于快速 return 来自 Guile C 扩展函数的“通用”值,例如:

SCM_UNSPECIFIED
SCM_BOOL_F

和其他人。

我希望从 C 函数中 returning #nil 会一样简单,但我还没有找到合适的常量或正确的方法。

返回 NULL 是不行的。

所以,问题是:我如何从 C 扩展函数 return #nil

如果这样做相对复杂,是否有原因(例如 returning #nil 在 Scheme 中可能不是惯用的)?

我想我找到了一种方法,虽然不一定是最好的。

有一个:

SCM_ELISP_NIL

由于名称中的 ELISP,我对此表示不满(事实证明,有充分的理由)。

原来它 return 是一个正确的 #nil 并且粗略检查 C 代码表明它不是更特定于 Guile 的东西的别名。

我自己的解释是 #nil 不是惯用的,而是为 ELISP 可移植性提供的,我可能应该 return 一个空列表。