Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. map(Fun, List) >
  2. N = length(List),
  3. {Part1, Part2} = lists:split(N div 2, List),
  4. Pid1 = spawn(?MODULE, start, [length(Part1), Fun, Part1, self()]),
  5. Pid2 = spawn(?MODULE, start, [length(Part2), Fun, Part2, self()]),
  6. receive
  7. {Pid1, FirstPart} >
  8. receive
  9. {Pid2, SecondPart} >
  10. FirstPart ++ SecondPart
  11. end
  12. end.
  13. start(N, Fun, Part, Pid) >
  14. Pid ! {self(), for(N, Fun, Part, [])}.
  15. for(N, _, _, ListOut) when N == 0 >
  16. ListOut;
  17. for(N, Fun, [X|ListIn], ListOut) >
  18. for(N1,
  19. Fun, ListIn, ListOut ++ [Fun(X)]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement