Ste*_*gle 15 clojure clojurescript
我在Clojurescript命名空间键入以下内容.
cljs.user> (use '[clojure.zip :only [insert-child]])
WARNING: Use of undeclared Var cljs.user/use at line 1
"Error evaluating:" (use (quote [clojure.zip :only [insert-child]])) :as "cljs.user.use.call(null,cljs.core.vec([\"\\uFDD1'clojure.zip\",\"\\uFDD0'only\",cljs.core.vec([\"\\uFDD1'insert-child\"])]));\n"
#<TypeError: Cannot call method 'call' of undefined>
TypeError: Cannot call method 'call' of undefined
at eval (eval at <anonymous> (http://localhost:3000/main.js:32728:147), <anonymous>:1:85)
at eval (eval at <anonymous> (http://localhost:3000/main.js:32728:147), <anonymous>:6:3)
at http://localhost:3000/main.js:32728:142
at evaluate_javascript (http://localhost:3000/main.js:32741:4)
at Object.callback (http://localhost:3000/main.js:32806:138)
at goog.messaging.AbstractChannel.deliver (http://localhost:3000/main.js:31059:13)
at goog.net.xpc.CrossPageChannel.deliver_ (http://localhost:3000/main.js:32164:14)
at Function.goog.net.xpc.NativeMessagingTransport.messageReceived_ (http://localhost:3000/main.js:31732:13)
at goog.events.Listener.handleEvent (http://localhost:3000/main.js:22590:26)
at Object.goog.events.fireListener (http://localhost:3000/main.js:22924:21)
nil
Run Code Online (Sandbox Code Playgroud)
似乎在说明cljs.user命名空间中不存在'use'方法.这种方式对我来说很有意义,因为Clojurescript本身无法评估Clojure表达式.但是,我知道Clojurescript有一个clojure.zip命名空间,我在命名空间声明中使用了clojure.zip (:use [clojure.zip :only [insert-child]]).
如何在Clojurescript repl中使用clojure.zip的Clojurescript版本?
lev*_*and 26
由于ClojureScript命名空间的实现方式与Clojure完全不同,因此ClojureScript不直接支持use或require表单.
相反,您必须使用ns宏.要clojure.zip在cljs.user命名空间中使用,请执行以下操作:
(ns cljs.user (:use [clojure.zip :only [insert-child]]))
Run Code Online (Sandbox Code Playgroud)
请注意,ClojureScript版本支持的表单ns是Clojure支持的表单的子集; 具体而言,:use子句必须指定一个:only表单,并且该:require子句必须指定一个:as表单.
| 归档时间: |
|
| 查看次数: |
2433 次 |
| 最近记录: |