2024年Clojure状态调查!中分享你的想法。

欢迎!请查看关于页面以了解更多关于这个功能的信息。

0
文档
函数{{defn}}的文档字符串是:

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

参数列表是:

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

有两个问题使我对这个文档字符串难以理解:

1. 文档字符串没有提到{{attr-map?}} - 我在文档中跳来跳去,才从{{attr-map?}}联想到“[...]属性添加到var元数据”。
2. 文档字符串提到了{{exprs*}},但参数列表中写道{{body}}。

5 个答案

0

由:alexmiller发表评论

非常欢迎补丁,感激最小化更改。

0

由:marc发表评论

我已经附带了补丁以解决两个问题

  • 将'exprs**'更改为'body'以与arglist匹配。
  • 在多参数形式中,将'body+)'更改为'body+'。

我没有处理“any attrs”指代attr-map的问题,我不确定如何以最“Clojure式”的方式表述。

0

由:alexmiller发表评论

看起来函数体变化缺少了尾随的右括号?

你有:(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 报告)
...