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:
parent
d2f57ee014
commit
bb560b9c16
1 changed files with 0 additions and 16 deletions
|
@ -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)))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue