bry*_*ods 11 clojure clojurescript
以下程序按照我在Clojure中的预期工作,但在ClojureScript中抛出错误.我想知道这是一个错误还是ClojureScript中没有这个功能,或者我需要重新考虑我试图这样做的方式.非常感谢您的帮助.
; Clojure...
(defn foo [x] x)
(defn foobee [x] (str (foo x) "bee"))
(println
((resolve (symbol (str "foo" "bee"))) "bizzee"))
;=> bizzeebee
; ClojureScript...
(defn foo [x] x)
(defn foobee [x] (str (foo x) "bee"))
(.log js/console
((resolve (symbol (str "foo" "bee"))) "bizzee"))
;=> Exception in thread "main" java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.Symbol
Run Code Online (Sandbox Code Playgroud)
Mic*_*zyk 15
resolve在ClojureScript中不存在.事实上,ClojureScript没有Vars.
调用名称是动态构造的函数是可以通过各种hack(比如使用aget命名空间对象)来实现的,但是除非导出所有相关的符号,否则这些函数会被高级编译打破.此外,即使使用更宽松的编译设置,目前也没有人享受官方支持.
| 归档时间: |
|
| 查看次数: |
1699 次 |
| 最近记录: |