[Haskell-cafe] Newbie question: Where is StackOverflow on the
Wiki?
Andrew Coppin
andrewcoppin at btinternet.com
Tue Aug 21 13:25:47 EDT 2007
Stefan O'Rear wrote:
> sum = sum' 0
> sum' k [] = k
> sum' k (x:xs) = (sum' $! (k+x)) xs
>
> enum x y | x >= y = 0
> | otherwise = x : enum (x+1) y
>
>
> sum (enum 1 10) =>
> sum' 0 (enum 1 10) =>
> sum' 0 (1 : enum (1+1) 10) =>
> (sum' $! (0+1)) (enum (1+1) 10) =>
> sum' 1 (enum (1+1) 10) =>
>
> sum' 1 (2 : enum (2+1) 10) =>
> (sum' $! (1+2)) (enum (2+1) 10) =>
> sum' 3 (enum (2+1) 10) =>
>
> sum' 3 (3 : enum (3+1) 10) =>
> (sum' $! (3+3)) (enum (3+1) 10) =>
> sum' 6 (enum (3+1) 10) =>
>
> sum' 6 (4 : enum (4+1) 10) =>
> (sum' $! (6+4)) (enum (4+1) 10) =>
> sum' 10 (enum (4+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 :) )
>
I did have a fairly small Tcl implementation for this...
I don't have the code now, and I wrote it early in my Haskell career, so
there's masses of stuff it didn't handle. (*cough* type classes)
Actually, I've often longed for some tool (maybe even integrated into
Lambdabot) to show the reduction sequence of an arbitrary expression.
But none exists, AFAIK...
More information about the Haskell-Cafe
mailing list