gpt4 book ai didi

Clojure core.match 无法在类上匹配

转载 作者:行者123 更新时间:2023-12-02 21:22:44 24 4
gpt4 key购买 nike

当评估这个 super 简单的 core.match 表达式时,我得到:

(match [(class "3.14")]
[Integer] "Integer"
[Double] "Doubler")
; => "Integer"

这怎么可能是正确的,我是否遗漏了有关 core.match 的一些基本内容?在此表单上执行 Macroexpand-1 可以得到:

=> (clojure.core/let [ocr-2751 (class "3.14")] (clojure.core/let [Integer ocr-2751] "Integer"))

任何指示表示赞赏。

最佳答案

就像@Arthur所说,通常core.match会将值绑定(bind)到符号。然而,显然,它 first tries to match against locals 。谁知道?

无论如何,在匹配之前将类绑定(bind)为 let 中的本地类,然后就可以开始了:

(let [Integer java.lang.Integer
String java.lang.String]
(match [(class "3.14")]
[Integer] "Integer"
[String] "String"))

关于Clojure core.match 无法在类上匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com