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