From 9e5e3fcec3730a7eb54a9e279eeb429d6335fbeb Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 26 Jan 2014 10:03:11 +0900 Subject: [PATCH] Using the version of list-copy which supports dotted tails. --- lib/init-7.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/init-7.scm b/lib/init-7.scm index 923d4ed3..ba4c66c4 100644 --- a/lib/init-7.scm +++ b/lib/init-7.scm @@ -23,8 +23,6 @@ (define (list . args) args) -(define (list-copy ls) (reverse! (reverse ls))) - (define (list-tail ls k) (if (eq? k 0) ls @@ -451,6 +449,12 @@ (let lp ((n n) (res '())) (if (<= n 0) res (lp (- n 1) (cons default res)))))) +(define (list-copy ls) + (let lp ((ls ls) (res '())) + (if (pair? ls) + (lp (cdr ls) (cons (car ls) res)) + (append (reverse res) ls)))) + (define (member obj ls . o) (let ((eq (if (pair? o) (car o) equal?))) (let lp ((ls ls))