Skip to content

Instantly share code, notes, and snippets.

@jirkamarsik
Created December 19, 2012 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jirkamarsik/4336851 to your computer and use it in GitHub Desktop.
Save jirkamarsik/4336851 to your computer and use it in GitHub Desktop.
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