Home > Erlang探索 > 简单的Map reduce用的收集函数

简单的Map reduce用的收集函数

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: 简单的Map reduce用的收集函数

在处理大量重复任务的时候,为了加快速度,通常会用map-reduce的方式,要是能有段代码做这个事情就好了。作者luke写了底下的代码片段,用起来感觉挺爽的,推荐给大家。原文见这里

%% http://lukego.livejournal.com/6753.html – that doesn’t care about
%% the order in which results are received.
upmap(F, L) ->
Parent = self(),
Ref = make_ref(),
[receive {Ref, Result} -> Result end
|| _ <- [spawn(fun() -> Parent ! {Ref, F(X)} end) || X <- L]].

这个函数的特点是不依赖于任务完成的顺序,结构很简单优雅。

祝玩得开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Erlang探索 Tags: ,
  1. Fisher
    October 27th, 2011 at 17:14 | #1

    非常优雅啊,列表推导功能真是很强大,哈哈

    [Reply]

  2. Fisher
    October 27th, 2011 at 17:16 | #2

    非常优雅,再次感受到列表推导功能的强大,哈哈

    [Reply]

  3. Jer
    October 28th, 2011 at 12:55 | #3

    简洁无止境!

    [Reply]

  1. No trackbacks yet.