Page 1 of 1

select column from two-dimension list

Posted: Thu Nov 03, 2005 3:09 pm
by Dmi
Is there a more simple way to do this:

Code: Select all

(define (select-column lst col)
  (let l '()
    (dolist (i lst)
       (push (i col) l -1))
   l))

Posted: Thu Nov 03, 2005 3:39 pm
by Sammo

Code: Select all

(define (select-column lst col)
   (map (fn (row) (row col)) lst) )

Posted: Thu Nov 03, 2005 3:50 pm
by Dmi
I'm stupid today! :-)
Thanx!

Posted: Thu Nov 03, 2005 7:24 pm
by Fanda
Not really from my head :-)

Code: Select all

> (setq L '((1 2) (3 4) (5 6)))
((1 2) (3 4) (5 6)) 
> (transpose L)
((1 3 5) (2 4 6)) 
> ((transpose L) 0)
(1 3 5) 
> ((transpose L) 1)
(2 4 6) 
> 
It should be fast too...

Fanda