Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Collecting traces from algorithms using dynamic Vars, second version.
(def ^:dynamic *fix-tree-adjunctions*)
(defn record-adjunct
"Records an adjunction performed within fix-tree."
[phrase adjunct]
(if (thread-bound? #'*fix-tree-adjunctions*)
(set! *fix-tree-adjunctions* (conj *fix-tree-adjunctions*
{:phrase phrase
:adjunct adjunct}))))
(def fixed-trees
"A map from tree filenames to their fixed versions."
(into {} (for [[name tree] trees]
[name (fix-tree tree)])))
(def adjunctions
"Records documenting all the adjunctions performed in our dataset."
(apply concat (for [[name tree] trees]
(binding [*fix-tree-adjunctions* []]
(fix-tree tree)
(map #(assoc % :name name) *fix-tree-adjunctions*)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment