今天实现了一个unzipped操作,比如
(list (list 1 2) (list 3 4) (list 5 6)) -> (list (list 1 3 5) (list 2 4 6))
这个实现起来没有什么难度,但是scheme中的表操作折腾了好久才没错。
(define (unzipped l)
(if (null? l)
(list '() '())
(list (cons (caar l) (car (unzipped (cdr l))))
(cons (cadar l) (cadr (unzipped (cdr l))))
)))