select column from two-dimension list

For the Compleat Fan
Locked
Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

select column from two-dimension list

Post 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))
WBR, Dmi

Sammo
Posts: 180
Joined: Sat Dec 06, 2003 6:11 pm
Location: Loveland, Colorado USA

Post by Sammo »

Code: Select all

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

Dmi
Posts: 408
Joined: Sat Jun 04, 2005 4:16 pm
Location: Russia
Contact:

Post by Dmi »

I'm stupid today! :-)
Thanx!
WBR, Dmi

Fanda
Posts: 253
Joined: Tue Aug 02, 2005 6:40 am
Contact:

Post 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

Locked