如何在Scribble文档中链接到一个过程的别名?

问题描述 投票:2回答:1

在为一个函数编写 Scribble 文档时,我想链接到一个内置函数,这个函数的名称与同一个 Scribble 文件中正在文档化的不同函数相同。通常情况下 @racketlink 可用于此目的(与类似于 prefix-in 来区分文档命名空间中的两个函数),但当链接需要在文档命名空间的参数部分时,这似乎并不适用。@defproc 形式。例如:

@defproc[(my-proc [f procedure? b:compose])
         any/c]{

 A procedure similar to @racketlink[b:compose]{compose}.

}

注意这两个用法 b:compose 以上。后者链接到 b:compose 简单地说就是 compose (如预期的那样),但如果我在前一个实例中尝试同样的代码(在参数块中),它显示为 (racketlink b:compose "compose"). 如何 "逃避 "字面处理内的内容。defproc 参数块?这与Scribble的 "内容 "和 "前内容 "的概念以及 "解码 "的过程有什么关系吗?

racket documentation scribble
1个回答
3
投票

这样的表单 @racket[_], @defproc[_]等让你使用 #, (其内容为: unsyntax),以逃过一劫。排码 语境。所以你应该可以把你的例子写成

@defproc[(my-proc [f procedure? #, @racketlink[b:compose]{compose})
         any/c]{ .... }

请注意 #,@为了防止读者将整个序列读作 "我的",需要将 "我的 "读作 "我的"。unsyntax-splicing. 你也可以把这个组合写成 @#,@ 读者与读者互动的缩写,如 #,.

将预内容(或预流等)转化为内容(或流等)的解码步骤是无关的。见 文件的 scribble/decode.

© www.soinside.com 2019 - 2024. All rights reserved.