Hi

> > 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.

Thanks

Neil
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to