quilのfun modeを読みながらclojureのstate操作を勉強

Functional mode (fun mode) · quil/quil Wiki · GitHub

quilのfun mode middlewareを導入すると、
sketchでstateが分かりやすく使えるようになります。

wikiページにあるexampleを流し読みしつつ、
いくつかのClojureの書き方を抜粋します。

連想データ構造

; 定義
(def a {:key 10})
; アクセス
(:key a)

キーワードから始まる式で値にアクセスできる。
この記法は分かりやすい。

update-in

(update-in a [:key] inc)

clojure.core - Clojure v1.6 API documentation
ネストした連想データ構造から、
一部を更新したデータに評価される。

->

(-> a
  (update-in [:key] inc))

clojure.core - Clojure v1.6 API documentation
式の評価を続く式の第一引数に挿入する。
式はいくつでも並べることができる。
データに対して複数の処理を適用するときに便利な略記。

感想

ほとんどの関数が old-state -> new-state の関数に収まるのは、
実装がしやすくなるかなと思います。
(複雑な処理は分割して実装して -> で連結できるので)