[Haskell-cafe] Seen on reddit: or,
foldl and foldr considered slightly harmful
Jan-Willem Maessen
jmaessen at alum.mit.edu
Thu Feb 11 10:21:42 EST 2010
On Feb 11, 2010, at 3:41 AM, Johann Höchtl wrote:
> In a presentation of Guy Steele for ICFP 2009 in Edinburgh:
> http://www.vimeo.com/6624203
> he "considers foldl and foldr" harmful as they hinder parallelism
> because of "Process first element, then the rest" Instead he proposes
> a divide and merge aproach, especially in the light of going parallel.
>
> The slides at
> http://docs.google.com/viewer?url=http%3A%2F%2Fresearch.sun.com%2Fprojects%2Fplrg%2FPublications%2FICFPAugust2009Steele.pdf
> [Bware: Google docs]
There's no need to use Google docs. A direct url for the pdf:
http://research.sun.com/projects/plrg/Publications/ICFPAugust2009Steele.pdf
I recently gave a followup talk at Portland State, arguing that notation matters, and that even with better notation programmer mindset is also going to be hard to change:
http://research.sun.com/projects/plrg/Publications/PSUJan2010-Maessen.pdf
The key thing here isn't *just* the handedness of lists, but the handedness of foldl/foldr *irrespective of the underlying data structure*. So switching to tree-structured data a la fingertrees is a necessary step, but not a sufficient one. The use of monoidal reductions has always been an important part of parallel programming.
> are somewhat geared towards Fortress, but I wonder what Haskellers
> have to say about his position.
Now, what if list comprehensions were really shorthand for construction of Applicative or Monoid structures by traversing a mixture of data types with a common interface (something like this one)?
class Generator t e | t -> e
mapReduce :: (Monoid m) => t -> (e -> m) -> m
-Jan-Willem Maessen
Another Fortress/Haskell crossover
> Greetings,
>
> Johann
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list