comparison clojure/com/aurellem/gb_driver.clj @ 83:95cb2152d7cd

fleshing out functional gb interface
author Robert McIntyre <rlm@mit.edu>
date Fri, 09 Mar 2012 19:18:00 -0600
parents 04d539d26bdc
children e8855121f413
comparison
equal deleted inserted replaced
82:04d539d26bdc 83:95cb2152d7cd
175 175
176 (defmacro without-saves [& forms] 176 (defmacro without-saves [& forms]
177 `(binding [*save-history* false] 177 `(binding [*save-history* false]
178 ~@forms)) 178 ~@forms))
179 179
180
181 (require '(clojure [zip :as zip]))
182
183
184
185
186 (defn tree->str [original]
187 (loop [s ".\n" loc (zip/down (zip/seq-zip (seq original)))]
188 (if (zip/end? loc) s
189 (let [d (count (zip/path loc))
190 rep
191 (str
192 s
193 (if (and (zip/up loc)
194 (> (count (-> loc zip/up zip/rights)) 0))
195 "|" "")
196 (apply str (repeat (dec d) " "))
197 (if (= (count (zip/rights loc)) 0)
198 "`-- "
199 "|-- ")
200 (zip/node loc)
201 "\n")]
202 (recur rep (zip/next loc))))))
203
204
205
206