Clojureでやってみたことの覚書1 - デバッグ

・以下のようにして、REPL上でスタックトレースを表示。

(pst *e)

Clojure/LeiningenのREPLで詳細なスタックトレースを見る - Qiita

・tools.trace でトレース。
clojure/tools.trace · GitHub

・以下のような形のデータがassocに渡ってくるところがあったので、

([:20140908-180000 :20140908-140000] [:20140908-192000 :20140908-140000])
; これを連想配列に変換するには以下のようにする。
(apply hash-map (flatten '([:20140908-180000 :20140908-140000] [:20140908-192000 :20140908-140000])))
;; -> {:20140908-180000 :20140908-140000, :20140908-192000 :20140908-140000}

期待する連想配列の形になるように対症療法(該当箇所を以下のassoc'に置き換え)。

(defn- assoc' [a b c]
  (let
    [a' (if (map? a) nodes (apply hash-map (flatten a)))]
    (assoc a' b c)))


プログラミングClojure 第2版

プログラミングClojure 第2版