方案(诡计)中
#~
是什么意思?
例如 guix 源代码中的这个片段:
#~(list (string-append "prefix=" #$output))
扩展@mnemenaut的评论,这让我走上了正确的轨道:
根据 Guix 参考手册,G 表达式在
(guix gexp)
包中实现。
这是描述
#~
缩写以及 #$
和 #$@
的摘要:
G 表达式,或 gexp,本质上由三种语法形式组成: gexp、ungexp 和 ungexp-splicing(或简称:#~、#$ 和 #$@),其中 与准引用、取消引用和取消引用拼接相当, 分别。
所以这个缩写不是 Guile Scheme 实现 (R5RS) 的一部分,而是 Guix API 的一部分。难怪在任何与该语言相关的来源上都很难找到它。使用 Guile 时,可能值得将 Guile 参考手册、Guix 参考手册 和 R5RS 标准 合并到单个 HTML 文件中。