This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
[Sascha Ziemann] | Hi, | | is there another way to split a list than to use list-head and | list-tail? | | I would like to avoid running twice through the list to the point where | the list should be splitted. Something like this (done destructively)? (Someone more skilled in Scheme than me would probably do this in a much smarter way -- perhaps iteration is a better solution than recursion in this case?) ;; Split list after (or is it "at"?) cons #N, counting from zero. (define (split-list-after! n list) (if (null? list) '() (if (= 0 n) (let ((tail (cdr list))) (set-cdr! list '()) tail) (split-list-after! (- n 1) (cdr list))))) -- Harald