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

欢迎!有关如何使用本站的更多信息,请查看关于页面。

0
ClojureScript
为了与Clojure保持一致,在映射{{conj}}实现中添加运行时检查,确保向量参数必须是配对的。

Clojure


user=> (conj {:a 1} [:b 2 2])
执行错误(IllegalArgumentException)在用户/eval7(REPL:1)。
映射向量合并的参数必须是一个配对
user=> (conj {:a 1} [:b])
执行错误(IllegalArgumentException)在用户/eval9(REPL:1)。
映射向量合并的参数必须是一个配对
user=> (conj {:a 1} [])
执行错误(IllegalArgumentException)在用户/eval11(REPL:1)。
映射向量合并的参数必须是一个配对


ClojureScript


cljs.user=> (conj {:a 1} [:b 2 2])
{:a 1, :b 2}
cljs.user=> (conj {:a 1} [:b])
执行错误(Error)在(<cljs 调试器>:1)。
向量长度为1时无第1项

cljs.user=> (conj {:a 1} [])
执行错误(Error)在(<cljs 调试器>:1)。
向量长度为0时无第0项


理由:尽管这将拒绝一些程序,但那些程序是错误的,并且不可移植到Clojure。

1 个答案

0
参考: https://clojure.atlassian.net/browse/CLJS-3111(由mfikes报告)
...