Проверить состояние в веселом режиме в Quil, используя REPL?

Я пишу набросок в Clojure/Quil в веселой (условной) моде.

Иногда я хочу, чтобы иметь возможность проверить, что в настоящее время state держит.

Тем не менее, когда я пытаюсь позвонить Quil's state из REPL я получаю следующее:

(q/state) ==>
NullPointerException   clojure.core/deref-future (core.clj:2208)

Не уверен, что это актуально, но то же самое происходит с функциями рисования из REPL:

(q/rect 0 0 10 10)

Как я могу получить текущее состояние, чтобы проверить его в REPL?

1 ответ

Чтобы вызывать функции Clojure/Quil непосредственно в REPL, они должны быть обернуты текущим скетчем:

(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 (для REPL)

Не уверен, о какой именно функции вы говорите, так как вы не публикуете код, так что это слепой выстрел.

Вы можете попытаться увидеть 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, и код в этом случае выглядит очень хорошо документированным.

Другие вопросы по тегам