我正在用Clojure/Quil以fun(function)模式写一个草图。
有时,我希望能够检查当前state
的容量
然而,当我尝试从REPL调用奎尔的state
时,我得到以下结果:
(q/state) ==>
NullPointerException clojure.core/deref-future (core.clj:2208)
不确定这是否相关,但从REPL中绘制函数也会发生同样的情况:
(q/rect 0 0 10 10)
如何在REPL中获得当前状态来检查它?
不确定你到底在谈论哪个函数,因为你没有post代码,所以这是一个盲射。
你可以试着看看state-atom
:
(require '[quil.core :as q])
;; both should do the same
@(q/state-atom)
(q/state) ;; is that what you were doing ?
你似乎引用的状态函数可选地接受一个参数,例如,当没有传递参数时返回状态原子:
(q/state :image)
在任何情况下,查看Clojure库的测试通常是一个好主意,在这种情况下,代码似乎有很好的文档。
为了在REPL中直接调用Clojure/Quil函数,它们需要用当前的草图包装:
(quil.applet/with-applet hello-quil.core/hello-quil
(quil.core/random 10))
要访问state
,您可以这样做:
(require '[quil.core :as q])
(quil.applet/with-applet hello-quil.core/hello-quil
(q/state))
这是直接从Quil wiki:动态工作流(用于REPL)