summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/array.fnl25
1 files changed, 12 insertions, 13 deletions
diff --git a/lib/array.fnl b/lib/array.fnl
index 8af6244..eb4827a 100644
--- a/lib/array.fnl
+++ b/lib/array.fnl
@@ -4,15 +4,14 @@
(table.sort a less-fn)
a)
-(fn concat [a b]
- (local copy
- (fn [a b]
- (reduce
- (fn [_ v res]
- (table.insert res v)
- res)
- b a)))
- (copy a b))
+(fn concat [...]
+ (local res [])
+ (var cur 1)
+ (each [_ t (pairs [...])]
+ (each [_ v (pairs t)]
+ (tset res cur v)
+ (set cur (+ 1 cur))))
+ res)
(fn flip [a]
(collect [k v (pairs a)]
@@ -54,14 +53,14 @@
false)
(fn list [obj]
- (local result [])
+ (local res [])
(var cursor 1)
(each [_ v (pairs obj)]
- (tset result cursor v)
+ (tset res cursor v)
(set cursor (+ 1 cursor)))
;; sort so we always return the same list for the same object
- (table.sort result)
- result)
+ (table.sort res)
+ res)
(local join table.concat)