Clojure 2024状态调查中分享您的想法!

欢迎!请在关于页面了解如何使用本站的一些详细信息。

0
文档
defn 的文档字符串为:

bq. 和 (def name (fn [params* ] exprs*)) 或 (def name (fn ([params* ] exprs*)+),添加任何文档字符串或属性到变量元数据中相同。prepost-map 定义了一个带有可选键 :pre 和 :post 的映射,其中包含前置条件和后置条件的集合。

参数列表为:

bq. (defn name doc-string? attr-map? [params*] prepost-map? body)

有两个问题使这个文档字符串对我来说难于理解

1. 文档字符串没有提到 {{attr-map?}} - 我在文档中跳来跳去才从 {{attr-map?}} 跳到 "添加到变量元数据中的任何 [...] 属性"。
2. 文档字符串中提到 {{exprs*}},但参数列表中指的是 {{body}}。

5 个答案

0

由 alexmiller 评论:

欢迎补丁,希望尽可能小的更改。

0

由 marc 评论:

我附上了一个补丁来解决两个问题

  • 将 'exprs**' 改为 'body' 以匹配参数列表。
  • 当引用多参数形式时,将 'body+' 改为 'body)+'

我没有解决关于 "任何属性" 的引用 attr-map 的问题,我不确定如何以最 "Clojure" 的方式措辞。

0

由 alexmiller 评论:

看起来体(body)的改变缺失了一个尾随的右括号?

你有: (def name (fn ((link: params ) body)+)
应该是: (def name (fn ((link: params
) body)+))

0

评论人:alex+import

嗨 @marc,有什么更新吗?很乐意看到这个更新 :) 感谢!

0
参考:https://clojure.atlassian.net/browse/CLJ-2211 (由 marc 报告)
...