[Haskell-cafe] List of functions

Mark Goldman bitshifter at gmail.com
Thu Sep 1 19:03:36 EDT 2005


On 8/31/05, Krasimir Angelov <kr.angelov at gmail.com> wrote:
> 2005/8/31, Sebastian Sylvan <sebastian.sylvan at gmail.com>:
> > On 8/31/05, Dinh Tien Tuan Anh <tuananhbirm at hotmail.com> wrote:
> > >
> > > >Something like (untested)...
> > > >
> > > >xs <- zipWith ($) forkIO (map (\f -> f x y) funs)
> > > >tids <- sequence xs
> > > >
> > >
> > >
> > > what does "zipWith ($)" do ?
> >
> > $ is function application, so zipWith ($) will "zip" a list of
> > functions with a list of arguments, by applying the functions to the
> > arguments pair-wise, producing a list of results.
> 
> But forkIO is function not a list of functions. The above example is
> incorrect. I think it should be:
> 
> tids <- sequence [forkIO (f x y) | f <- funs]

The following corrects the zipWith example:
xs <- zipWith ($) (repeat forkIO) (map (\f -> f x y) funs)
tids <- sequence xs

-- 
"50% of marriages today end in divorce, the other 50% end in death. 
Which would you rather have?"


More information about the Haskell-Cafe mailing list