aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeffrey Straszheim <straszheimjeffrey@gmail.com>2009-02-24 23:53:51 +0000
committerJeffrey Straszheim <straszheimjeffrey@gmail.com>2009-02-24 23:53:51 +0000
commit7631cfad764e954fc12840466698e85ede9674e6 (patch)
tree1431518887200391f293d63526cc66083695f603 /src
parent9a3145238ed1cdcc20019080e94c6baeeeb24259 (diff)
Tweaked lazy-walk
Diffstat (limited to 'src')
-rw-r--r--src/clojure/contrib/graph.clj9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/clojure/contrib/graph.clj b/src/clojure/contrib/graph.clj
index a1e82a25..47d8e67e 100644
--- a/src/clojure/contrib/graph.clj
+++ b/src/clojure/contrib/graph.clj
@@ -13,6 +13,7 @@
;; straszheimjeffrey (gmail)
;; Created 23 June 2009
+
(ns clojure.contrib.graph
(use [clojure.set :only (union)]))
@@ -68,13 +69,11 @@
([g n]
(lazy-walk g [n] #{}))
([g ns v]
- (lazy-seq (let [s (seq ns)
+ (lazy-seq (let [s (seq (remove v ns))
n (first s)
- ns (rest ns)]
+ ns (rest s)]
(when s
- (if (v n)
- (lazy-walk g ns v)
- (cons n (lazy-walk g (concat (get-neighbors g n) ns) (conj v n)))))))))
+ (cons n (lazy-walk g (concat (get-neighbors g n) ns) (conj v n))))))))
(defn transitive-closure
"Returns the transitive closure of a graph. The neighbors are lazily computed."