codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; reverse every k nodes of a linked list (define (take n xs) (let loop ((n n) (xs xs) (ys '())) (if (or (zero? n) (null? xs)) (reverse ys) (loop (- n 1) (cdr xs) (cons (car xs) ys))))) (define (drop n xs) (let loop ((n n) (xs xs)) (if (or (zero? n) (null? xs)) xs (loop (- n 1) (cdr xs))))) (define (rev n xs) (if (null? xs) xs (append (reverse (take n xs)) (rev n (drop n xs))))) (display (rev 1 '(1 2 3 4 5 6))) (newline) (display (rev 2 '(1 2 3 4 5 6))) (newline) (display (rev 3 '(1 2 3 4 5 6))) (newline) (display (rev 4 '(1 2 3 4 5 6))) (newline) (display (rev 6 '(1 2 3 4 5 6))) (newline)
Private
[
?
]
Run code