summaryrefslogtreecommitdiff
path: root/chickadee/array-list.scm
diff options
context:
space:
mode:
Diffstat (limited to 'chickadee/array-list.scm')
-rw-r--r--chickadee/array-list.scm16
1 files changed, 6 insertions, 10 deletions
diff --git a/chickadee/array-list.scm b/chickadee/array-list.scm
index 8f5bb11..e18f9bf 100644
--- a/chickadee/array-list.scm
+++ b/chickadee/array-list.scm
@@ -16,6 +16,7 @@
;;; <http://www.gnu.org/licenses/>.
(define-module (chickadee array-list)
+ #:use-module (chickadee utils)
#:use-module (ice-9 format)
#:use-module (rnrs base)
#:use-module (srfi srfi-9)
@@ -128,22 +129,17 @@
(loop (+ i 1)))))))
(define (array-list-clear! array-list)
- (let ((size (array-list-size array-list))
- (vec (array-list-vector array-list)))
+ (let ((vec (array-list-vector array-list)))
;; Remove all element references so they can be GC'd.
- (let loop ((i 0))
- (when (< i size)
- (vector-set! vec i #f)
- (loop (1+ i)))))
+ (for-range ((i (array-list-size array-list)))
+ (vector-set! vec i #f)))
(set-array-list-size! array-list 0)
*unspecified*)
(define (array-list-for-each proc array-list)
(let ((vec (array-list-vector array-list)))
- (let loop ((i 0))
- (when (< i (array-list-size array-list))
- (proc i (vector-ref vec i))
- (loop (1+ i))))))
+ (for-range ((i (array-list-size array-list)))
+ (proc i (vector-ref vec i)))))
(define (array-list-fold proc init array-list)
(let ((vec (array-list-vector array-list)))