diff options
| -rw-r--r-- | cljlib.fnl | 18 | ||||
| -rw-r--r-- | tests/core.fnl | 4 |
2 files changed, 8 insertions, 14 deletions
@@ -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" |