[Haskell-beginners] Comments on Map/Reduce Code
Thomas Bach
thbach at students.uni-mainz.de
Tue Jul 17 15:01:39 CEST 2012
On Sat, Jul 14, 2012 at 08:35:44PM -0400, Brent Yorgey wrote:
> On Fri, Jul 13, 2012 at 06:02:02PM +0200, Thomas Bach wrote:
>
> > The reducer still throws an error when piping in an empty
> > newline. But, I'm not sure, what a proper solution for this could be.
>
> The problem is your 'summation' function:
>
> summation :: Num b => [(a, b)] -> (a, b)
>
> In fact, it is impossible to implement something with this type which
> works for all inputs. If you get the empty list as input, there is no
> way to make up a value of type 'a' in the output tuple.
>
It really is not that big of a deal. As I'd assume that Hadoop
guarantees that at least one line will be passed to the reducer. But,
just out of curiosity: wouldn't this be a case where monads are
applied? Say, `Maybe'? So that the type becomes
summation :: Num b => [(a, b)] -> Maybe (a, b)
Or is the semantic behind monads a different one?
Regards,
Thomas
More information about the Beginners
mailing list