Clojure core.match中的谓词函数分派
我刚刚开始深入研究(顺便说一句,这是一个很棒的库),我希望能够扩展Clojure core.match中的谓词函数分派,clojure,core.match,Clojure,Core.match,我刚刚开始深入研究(顺便说一句,这是一个很棒的库),我希望能够扩展match以分派任意谓词函数。不幸的是,这看起来是不可能的,因为编译器无法在宏扩展时判断函数是否为函数 这是正确的吗?如果是(或者不是),是否有办法破解它,以便我可以在匹配表达式中使用如下所示的函数 e、 g 我知道通过多方法扩展接口,这对于使用集合文本匹配集合中的包含非常有效 提前感谢。您似乎想使用:guard功能 (match [7] [1] :a0 ["green"] :a1 [prime?] :a2
match
以分派任意谓词函数。不幸的是,这看起来是不可能的,因为编译器无法在宏扩展时判断函数是否为函数
这是正确的吗?如果是(或者不是),是否有办法破解它,以便我可以在匹配
表达式中使用如下所示的函数
e、 g
我知道通过多方法扩展接口,这对于使用集合文本匹配集合中的包含非常有效
提前感谢。您似乎想使用
:guard
功能
(match [7]
[1] :a0
["green"] :a1
[prime?] :a2
[number?] :a3)