1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-03 13:20:26 +02:00

(split-at, split-at!): Rewrite in C.

This commit is contained in:
Kevin Ryde 2005-03-15 21:58:46 +00:00
parent d2f57ee014
commit bb560b9c16

View file

@ -366,22 +366,6 @@
'()
(lp (- n 1) (cdr l)))))))
(define (split-at x i)
(let lp ((l x) (n i) (acc '()))
(if (<= n 0)
(values (reverse! acc) l)
(lp (cdr l) (- n 1) (cons (car l) acc)))))
(define (split-at! x i)
(if (<= i 0)
(values '() x)
(let lp ((l x) (n (- i 1)))
(if (<= n 0)
(let ((tmp (cdr l)))
(set-cdr! l '())
(values x tmp))
(lp (cdr l) (- n 1))))))
(define (last pair)
(car (last-pair pair)))