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

欢迎!有关如何使用本站的相关信息,请查阅关于页面。

0
Clojure

应抱怨使用完全限定的名称作为参数

(defmacro lookup (link: )
`(reify clojure.lang.ILookup

      (valAt (link: _ key))))

但它简单地忽略该参数在方法体中,转而使用 clojure.core/key。

5 个答案

0

评论者:importer

richhickey说:我不确定问题是否正如您所说的那样,或者解决方案是否应该按照您建议的那样。真正的问题是key在限定时的解析。另一个可能性是忽略那里的限定符。

0

评论者:importer

http://www.assembla.com/spaces/clojure/tickets/348转换而来
附件
0001-Add-a-test-for-348-reify-shouldn-t-accept-qualified-.patch - https://www.assembla.com/spaces/clojure/documents/d2xUJIxTyr36fseJe5cbLA/download/d2xUJIxTyr36fseJe5cbLA

0

评论者:importer

technomancy说:(link: [file:d2xUJIxTyr36fseJe5cbLA)]: 一个测试来暴露不期望的行为

0

评论者:importer

technomancy 表示:很有趣。所以在这个地方不要求auto-gensym?为什么reify方法和proxy方法规则不同?

(defmacro lookup (link: )
`(proxy (link: clojure.lang.ILookup) (link: )

      (valAt (link: key) key)))

(lookup)

无法使用限定名称作为参数:clojure.core/key
(link: 抛出类java.lang.Exception)

0
参考:[https://clojure.atlassian.net/browse/CLJ-348](https://clojure.atlassian.net/browse/CLJ-348) (由 alex+import 提交)
...