(lambda (x) (let tr ((x x)) (if (null? (car x)) '() (cons (map car x) (tr (map cdr x)))))) ; tests (let* ((tr (fileVal "transpose")) (te (lambda (a b) (cons (equal? a (tr b)) (equal? b (tr a)))))) (list (te '((3)) '((3))) (te '((2 4)) '((2)(4))) (te '((2 4) (3 5) (5 2)) '((2 3 5) (4 5 2))))) ; => ((#t . #t) (#t . #t) (#t . #t))