Mercurial > vba-clojure
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 |