Mercurial > vba-clojure
diff 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 |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/gb_driver.clj Fri Mar 09 13:24:02 2012 -0600 1.2 +++ b/clojure/com/aurellem/gb_driver.clj Fri Mar 09 19:18:00 2012 -0600 1.3 @@ -177,3 +177,30 @@ 1.4 `(binding [*save-history* false] 1.5 ~@forms)) 1.6 1.7 + 1.8 +(require '(clojure [zip :as zip])) 1.9 + 1.10 + 1.11 + 1.12 + 1.13 +(defn tree->str [original] 1.14 + (loop [s ".\n" loc (zip/down (zip/seq-zip (seq original)))] 1.15 + (if (zip/end? loc) s 1.16 + (let [d (count (zip/path loc)) 1.17 + rep 1.18 + (str 1.19 + s 1.20 + (if (and (zip/up loc) 1.21 + (> (count (-> loc zip/up zip/rights)) 0)) 1.22 + "|" "") 1.23 + (apply str (repeat (dec d) " ")) 1.24 + (if (= (count (zip/rights loc)) 0) 1.25 + "`-- " 1.26 + "|-- ") 1.27 + (zip/node loc) 1.28 + "\n")] 1.29 + (recur rep (zip/next loc)))))) 1.30 + 1.31 + 1.32 + 1.33 +