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

欢迎!有关如何操作的更多信息,请参阅关于页面。

0
ClojureScript

大家好,

我觉得我在 cljs core.async 1.3.610 中找到了一个错误(clj 运行正常)。你们同意我的看法吗?

问题

(cljs.core.async/go
  (println "XXX before")     
  (let [old 1
      new „my-new"]
   (println "XXX after")
   (println [old new])))
=> „XXX vorher"
=> „XXX nacher"
=> TypeError TypeError: 1.call is not a function

将 new 符号改为 xnew 可以解决问题

(cljs.core.async/go
  (println "XXX before")     
  (let [old 1
      xnew „my-new"]
   (println "XXX after")
   (println [old xnew])))
=> „XXX vorher"
=> „XXX nacher"
=> [1 „my-new"]

以下宏展开片段显示了我想表达的错误。实例化 cljs.core/PersistentVector 时使用了错误的 new

...
(clojure.core/let
 [inst_35971
 (println "XXX before")
 inst_35972
 (. cljs.core/PersistentVector -EMPTY-NODE)
 inst_35973
 (js* "[{},{}]" 1 "my-new")
 inst_35974
 ("my-new"
  cljs.core/PersistentVector
  nil
  2
  5
  inst_35972
  inst_35973
  nil)
 inst_35975
 (println inst_35974)
 state_35977
 …]
…))

因此,请不要将 new 作为符号使用!:-$

1 个答案

0

选中答案
 
最佳答案

https://clojure.atlassian.net/browse/ASYNC-63

core.async 的 cljs 方面真的需要一些关爱。

...