[Haskell-cafe] Re: Newbie question: Where is StackOverflow on the Wiki?

apfelmus 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 []                       =>
>>> 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).

Regards,
apfelmus



More information about the Haskell-Cafe mailing list