Isa*_*aac 2 clojure core.match
我刚开始潜入core.match(顺便说一句,这是一个很棒的库),我希望能够扩展match到任意谓词函数的调度.不幸的是,看起来这是不可能的,因为编译器无法判断函数是否是宏扩展时的函数.
这是正确的,如果是这样(或者如果没有),是否有办法破解它,以便我可以在match表达式中使用函数,如下所示?
例如
(match [7]
[1] :a0
["green"] :a1
[prime?] :a2
[number?] :a3)
Run Code Online (Sandbox Code Playgroud)
我知道通过multimethods扩展接口,并且使用set literals来匹配集合中的包含,这非常有效.
提前致谢.