[Haskell-cafe] Re: Newbie question: Where is StackOverflow on
andrewcoppin at btinternet.com
Tue Aug 21 15:37:19 EDT 2007
Neil Mitchell wrote:
>>> (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.
Like I said, I made a tool in Tcl that works. If you program in
partially-parsed Haskell by hand first for all the functions it calls.
(Except a few basic math ops.) Indeed, it was by playing with this tool
that I first discovered why foldl' needs to exist! ;-)
So, making a tool that you can set up to quickly generate an automated
trace is quite easy. If you want a tool where you can just casually toss
arbitrary Haskell at it and expect sensible answers... hmm... that's
going to be kinda tricky. (!)
(I had a go at it myself, several times. Each time I was tripped over by
being unable to correctly parse arbitrary Haskell code. I never even got
to writing the execution engine...!)
I think a lot of people will agree that if such a tool existed it could
be a *tremendous* help in many, many ways - a tool for experimenting and
teaching, finding out why your really-complicated-function behaves
wrong, checking out strictness properties, etc. But somebody has to
write it first.
It's ironic really; Haskell *looks* so easy to single-step. ;-)
More information about the Haskell-Cafe