Applying multiple lists?

Started by methodic, March 11, 2011, 04:54:24 PM

Previous topic - Next topic

methodic

Hi there,



Having a brain-fart, I blame it on dropping my morning coffee by accident before finishing it.



I have a list with multiple lists inside, and I'd like to map a function to each list as if I were passing them separately to map.



Example:

(map append '("one" "two") '("for" "you")) will render ("onefor" "twoyou").



I'd like to accomplish that, but if the argument to map is one list, with multiple lists. Sort of like this psuedo-code:

(map append (map each mylist))



Of course I could write a primitive function called "each" that did nothing but return a single element, but I figured that would be taking the long road since I'm sure newLisp has something built in I'm missing.



Thanks in advance!

Kazimir Majorinc

#1
(eval (extend '(map append) (map quote '(("one" "two")("for" "you")))))

(map (fn(x)(apply append x)) (transpose '(("one" "two")("for" "you"))))
http://kazimirmajorinc.com/\">WWW site; http://kazimirmajorinc.blogspot.com\">blog.

cormullion

#2
If transpose works for you, then it's good"


(set 'l '(("one" "two") ("for" "you")))
(map join (transpose l))
;-> ("onefor" "twoyou")

cormullion

#3
Although - after a coffee - I thought that


(set 'L '(("one" "two") ("for" "you")))
    (map append (L 0) (L 1))
)


was easier if you knew there were just two elements..

methodic

#4
Quote from: "cormullion"Although - after a coffee - I thought that


(set 'L '(("one" "two") ("for" "you")))
    (map append (L 0) (L 1))
)


was easier if you knew there were just two elements..

Bah, transpose is what I was looking for, thanks! Here is what I was looking to do:

I had a list of lists of scores, and wanted to add all scores with their respective index:
(map (fn (x) (apply add x)) (map append (transpose scores)))