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 被解析为我对 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 方面确实需要一些关爱。

...