请在2024 Clojure调研状态!中分享您的看法。

欢迎!请查看关于页面获取更多关于此功能的详细信息。

0
core.match
例如

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


问题似乎在于空序列模式被转换为用于 () 的字面量模式。对于字面量模式,IPatternCompile 检查字面量是否是 () -- 如果是,它发出一个 {{empty?}} 测试,而没有任何检查来查看 ocr 是否是 {{Seqable}}。

1 答案

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