[Haskell-cafe] Re: Newbie question: Where is StackOverflow on the
apfelmus at quantentunnel.de
Thu Aug 23 14:00:24 EDT 2007
Neil Mitchell wrote:
>>> sum (enum 1 10) =>
>>> sum' 0 (enum 1 10) =>
>>> sum' 36 (9 : enum (9+1) 10) =>
>>> (sum' $! (36+9)) (enum (9+1) 10) =>
>>> sum' 45 (enum (9+1) 10) =>
>>> sum' 45  =>
>>> (I need to find some way to automate making these trails :) )
>> Yes! We'd need such an automatic tool for the wikibook, too.
> The problem is that Haskell is ridiculously complex, and the "small
> step" interpretation is much harder than you'd think. For example, sum
> may well be defined as foldl' (+) 0, which is a CAF, so gets reduced
> once. The 0 won't actually be a 0, but will be fromInteger 0, which
> will correspond to looking up an item in the dictionary and applying
> it. Dictionaries especially make the "simple" interpretation
> completely wrong.
> It's easy to do informally, but once you start being more precise, its
> very complex.
Yeah, the precise details may vary, even :) But for teaching, an
automatic tool that does graph reduction would be great. I don't mind if
it's sloppy (directly apply definitions & pattern matching VS everything
is a lambda abstraction) and only does simply typed lambda calculus (no
type applications, no type classes).
More information about the Haskell-Cafe