使用REPL在Quil的fun-mode中检查状态?

时间:2016-07-03 15:33:24

标签: clojure quil

我正在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中检查它?

2 个答案:

答案 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)