mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
Fix: concatenate! work with empty lists
This commit is contained in:
parent
af41e2b01d
commit
7bf376b7fb
1 changed files with 7 additions and 6 deletions
|
@ -15,12 +15,13 @@
|
||||||
(define (concatenate! lists)
|
(define (concatenate! lists)
|
||||||
(if (null? lists)
|
(if (null? lists)
|
||||||
'()
|
'()
|
||||||
(let lp ((ls lists))
|
(fold (lambda (el acc)
|
||||||
(cond ((not (pair? (cdr ls)))
|
(cond
|
||||||
(car lists))
|
((null? acc) el)
|
||||||
(else
|
((null? el) acc)
|
||||||
(set-cdr! (last-pair (car ls)) (cadr ls))
|
(else (begin (set-cdr! (last-pair acc) el) acc))))
|
||||||
(lp (cdr ls)))))))
|
(car lists)
|
||||||
|
(cdr lists))))
|
||||||
|
|
||||||
(define (append-reverse rev tail)
|
(define (append-reverse rev tail)
|
||||||
(if (null? rev) tail (append-reverse (cdr rev) (cons (car rev) tail))))
|
(if (null? rev) tail (append-reverse (cdr rev) (cons (car rev) tail))))
|
||||||
|
|
Loading…
Add table
Reference in a new issue