Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- map(Fun, List) >
- N = length(List),
- {Part1, Part2} = lists:split(N div 2, List),
- Pid1 = spawn(?MODULE, start, [length(Part1), Fun, Part1, self()]),
- Pid2 = spawn(?MODULE, start, [length(Part2), Fun, Part2, self()]),
- receive
- {Pid1, FirstPart} >
- receive
- {Pid2, SecondPart} >
- FirstPart ++ SecondPart
- end
- end.
- start(N, Fun, Part, Pid) >
- Pid ! {self(), for(N, Fun, Part, [])}.
- for(N, _, _, ListOut) when N == 0 >
- ListOut;
- for(N, Fun, [X|ListIn], ListOut) >
- for(N1,
- Fun, ListIn, ListOut ++ [Fun(X)]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement