Merge pull request #536 from scolsen/array-list-dynamics

Macros: Add dynamic list to array transforms
This commit is contained in:
Erik Svedäng 2019-09-09 21:43:04 +02:00 committed by GitHub
commit e40dfc57d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -86,7 +86,22 @@
(defmacro e [form]
(eval-internal form))
(defndynamic list-to-array-internal [xs acc]
(if (= 0 (length xs))
acc
(list-to-array-internal (cdr xs) (append acc (array (car xs))))))
(defndynamic collect-into-internal [xs acc f]
(if (= 0 (length xs))
acc
(collect-into-internal (cdr xs) (append acc (f (car xs))) f)))
(doc collect-into
"Transforms a dynamic data literal into another, preserving order")
(defndynamic collect-into [xs f]
(list 'quote
(collect-into-internal xs (f) f)))
)
(defndynamic cond-internal [xs]