gpt4 book ai didi

clojure - 这是 clojure.core.match 错误还是只是我的问题?

转载 作者:行者123 更新时间:2023-12-02 18:45:14 25 4
gpt4 key购买 nike

(match
[[1 2 3]]
[(:or [_ _ 2]
[3 _ _])] :a0

[(:or [_ _ 1]
[1 _ _])] :a1
:else :else)

=> :else

在第一个片段中,我希望它返回 :a1

奇怪。

这有效:

(match
[[1 2 3]]
[(:or [_ _ 2]
[1 _ _])] :a0

[(:or [_ _ 1]
[3 _ _])] :a1
:else :else)

=> :a0

这是预期的行为吗?

最佳答案

我想说这不是因为手册中从未提及您使用 :or 的方式。它应该用在这样的表达式中:

[4 (:or 5 6 7) _] :a1

所以你的代码应该看起来像

(match
[[1 2 3]]
[[_ _ 2]] :a0
[[3 _ _]] :a0

[[_ _ 1]] :a1
[[1 _ _]] :a1
:else :else)

但也许你应该咨询作者。很难说清初衷是什么。

关于clojure - 这是 clojure.core.match 错误还是只是我的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43782358/

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