[erlang-questions] Mapping over 2+ lists/variables?

Richard Carlsson <>
Wed Jul 23 18:28:46 CEST 2008


Circular Function wrote:
> in python I can do:
>  >>> map(lambda x,y:x+y,[1,2,3],[4,5,6])
> [5, 7, 9]
>  >>>
> 
> 38> lists:map(fun(X,Y) -> X+Y end,[1,2],[3,4]).
> ** exception error: undefined function lists:map/3
> 39>
> 
> isnt there general map-function that map is derived from that I can use?
> what about listcomprehensions?
> 44> [X+Y || X,Y <- lists:seq(1,10),lists:seq(1,10)].
> * 1: variable 'X' is unbound
> 45>

Erlang's list comprehensions can't do that. The function you want is
lists:zipwith(Fun,List1,List2). You could also do lists:zip(List1,List2)
and then run map on the result, but zipwith does it in one pass.

     /Richard

-- 
  "Having users is like optimization: the wise course is to delay it."
    -- Paul Graham



More information about the erlang-questions mailing list