diff options
Diffstat (limited to 'chickadee/array-list.scm')
-rw-r--r-- | chickadee/array-list.scm | 16 |
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))) |