347 |
|
|
348 |
(define (car+cdr x) (values (car x) (cdr x))) |
(define (car+cdr x) (values (car x) (cdr x))) |
349 |
|
|
350 |
(define (take x i) |
(define take list-head) |
351 |
(let lp ((n i) (l x) (acc '())) |
(define drop list-tail) |
352 |
(if (<= n 0) |
|
|
(reverse! acc) |
|
|
(lp (- n 1) (cdr l) (cons (car l) acc))))) |
|
|
(define (drop x i) |
|
|
(let lp ((n i) (l x)) |
|
|
(if (<= n 0) |
|
|
l |
|
|
(lp (- n 1) (cdr l))))) |
|
353 |
(define (take-right flist i) |
(define (take-right flist i) |
354 |
(let lp ((n i) (l flist)) |
(let lp ((n i) (l flist)) |
355 |
(if (<= n 0) |
(if (<= n 0) |