3 ms·
in an iteration: (let* ((rlist (list '())) (last list)) (flet ((collect (item) (setf (cdr last) (list item) la
by lispm 4y ago
in an iteration:
(let* ((rlist (list '()))
(last list))
(flet ((collect (item)
(setf (cdr last) (list item)
last (cdr last))
item)
(finish ()
(cdr rlist)))
(dotimes (i 10)
(collect i))
(finish)))
- kagevf 4y agoThank you for the reply! And I see that even in my original attempt, I could have used (setf (cdr)) instead of (rplacd)...
- lispm 4y ago(let* ((rlist (list '())) (last rlist)) (flet ((collect (item &aux (cons-cell (list item))) (setf (cdr last) cons-cell last cons-cell) item) (finish () (cdr rlist))) (dotimes (i 10) (collect i)) (finish)))