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

欢迎!请查看关于页面,了解更多有关该功能的信息。

0
core.match
例如

user=> (let [x 5] (m/match x ([] :seq) true :else false))
IllegalArgumentException 无法从:java.lang.Long 创建 ISeq  clojure.lang.RT.seqFrom (RT.java:542)


问题似乎在于空序列模式被转换为用于 () 的LiteralPatterns。IPatternCompile 对LiteralPatterns进行检测,如果为(),则生成一个{{empty?}}测试,而没有检查ocr是否为{{Seqable}}。

1 答案

0
参考: https://clojure.atlassian.net/browse/MATCH-120 (由 glchapman 报告)
...