summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cljlib.fnl18
-rw-r--r--tests/core.fnl4
2 files changed, 8 insertions, 14 deletions
diff --git a/cljlib.fnl b/cljlib.fnl
index 814b3af..e7b5f31 100644
--- a/cljlib.fnl
+++ b/cljlib.fnl
@@ -376,14 +376,7 @@ Sets additional metadata for function [`vector?`](#vector?) to work.
(assert (eq v [1 2 3 4]))
```"
[& args]
- (setmetatable args {:cljlib/type :seq
- :__fennelview (fn [t]
- (let [res []
- view (require :fennelview)]
- (each [_ v (ipairs t)]
- (insert res (view v)))
- (.. "[" (table.concat res " ") "]")))
- :__name "vector"}))
+ (setmetatable args {:cljlib/type :seq}))
(fn* core.seq
"Create sequential table.
@@ -1105,9 +1098,12 @@ that would apply to that value, or `nil` if none apply and no default."
"Returns stateless `ipairs` iterator for ordered sets."
(fn []
(fn set-next [t i]
- (each [k v (pairs t)]
- (if (= v (+ 1 i))
- (lua "return v, k"))))
+ (fn loop [t k]
+ (local (k v) (next t k))
+ (if v (if (= v (+ 1 i))
+ (values v k)
+ (loop t k))))
+ (loop t))
(values set-next Set 0)))
(fn hash-set-ipairs [Set]
diff --git a/tests/core.fnl b/tests/core.fnl
index 4c7fdeb..d323a07 100644
--- a/tests/core.fnl
+++ b/tests/core.fnl
@@ -716,9 +716,7 @@
(assert-eq (vector) [])
(assert-eq (vector 1) [1])
(assert-eq (vector 1 2 3) [1 2 3])
- (let [m (getmetatable (vector 1 2 3))]
- (assert-eq (. m :__name) "vector")
- (assert-eq (. m :cljlib/type) :seq))))
+ (assert-eq (getmetatable (vector 1 2 3)) {:cljlib/type :seq})))
(deftest hash-map
(testing "hash-map"