aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2008-12-16 17:18:45 +0000
committerStuart Sierra <mail@stuartsierra.com>2008-12-16 17:18:45 +0000
commit2c2cf4b718b4df32d984ffd5a91e9a72534d8630 (patch)
tree7de7f3ec542441320c911e98888d5572e5c0d73e
parent5b151fe8d40a67a79e2c97fce5fd36d121853c2f (diff)
seq_utils.clj: fixed flatten to return nil for nil
See discussion at http://groups.google.com/group/clojure/browse_thread/thread/966bd0d4bb18a4a2
-rw-r--r--src/clojure/contrib/seq_utils.clj9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/clojure/contrib/seq_utils.clj b/src/clojure/contrib/seq_utils.clj
index 92256af0..58b5914b 100644
--- a/src/clojure/contrib/seq_utils.clj
+++ b/src/clojure/contrib/seq_utils.clj
@@ -1,7 +1,7 @@
;;; seq_utils.clj -- Sequence utilities for Clojure
;; by Stuart Sierra, http://stuartsierra.com/
-;; last updated August 12, 2008
+;; last updated December 16, 2008
;; Copyright (c) Stuart Sierra, 2008. All rights reserved. The use
;; and distribution terms for this software are covered by the Eclipse
@@ -19,10 +19,11 @@
;; see http://groups.google.com/group/clojure/msg/385098fabfcaad9b
(defn flatten
"Takes any nested combination of sequential things (lists, vectors,
- etc.) and returns their contents as a single, flat sequence."
+ etc.) and returns their contents as a single, flat sequence.
+ (flatten nil) returns nil."
[x]
- (let [s? #(instance? clojure.lang.Sequential %)]
- (filter (complement s?) (tree-seq s? seq x))))
+ (filter (complement sequential?)
+ (rest (tree-seq sequential? seq x))))
(defn separate
"Returns a vector: