我正在Clojure / Quil中写一个有趣(ctional)模式的草图。
有时,我希望能够检查当前state
持有的内容。
然而,当我尝试从REPL调用Quil的state
时,我得到以下内容:
(q/state) ==>
NullPointerException clojure.core/deref-future (core.clj:2208)
不确定这是否相关,但是从REPL中绘制函数也是如此:
(q/rect 0 0 10 10)
如何获取当前状态以在REPL中检查它?
答案 0 :(得分:1)
不确定你正在谈论的是哪个功能,因为你没有发布代码所以这是一个盲目的镜头。
您可以尝试查看state-atom
:
(require '[quil.core :as q])
;; both should do the same
@(q/state-atom)
(q/state) ;; is that what you were doing ?
您似乎引用的状态函数可选地使用参数for instance,并在传递no parameter时返回state-atom:
(q/state :image)
在任何情况下,查看Clojure库的测试通常都是个好主意,本案例中的代码似乎记录得很清楚。
答案 1 :(得分:1)
为了直接在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:Dynamic Workflow (for REPL)