Re: [Haskell-cafe] Do I have this right? Remembering Memoization!

2009-09-15 Thread Edward Kmett
I agree with what you meant, but not quite with what you said. To be pedantic: import Debug.Trace foo :: Int foo = trace Foo (bar 12) bar :: Int - Int bar x = trace Bar x main :: IO () main = foo `seq` foo `seq` return () main prints Foo\nBar\n showing that the bar is only evaluated

Re: [Haskell-cafe] Do I have this right? Remembering Memoization!

2009-09-15 Thread Derek Elkins
But pedantically even the function: quux :: Int - Int quux x = trace Quux (bar 12) optmain :: IO () optmain = quux 10 `seq` quux 11 `seq` return () might print only once if GHC at the optimization level selected recognizes that quux doesn't depend on its argument and rewrote your code

[Haskell-cafe] Do I have this right? Remembering Memoization!

2009-09-13 Thread Casey Hawthorne
Do I have this right? Remembering Memoization! For some applications, a lot of state does not to be saved, since initialization functions can be called early, and these functions will remember - (memoize) their results when called again, because of lazy evaluation? -- Regards, Casey

Re: [Haskell-cafe] Do I have this right? Remembering Memoization!

2009-09-13 Thread Mark Wotton
On 14/09/2009, at 9:28 AM, Casey Hawthorne wrote: Do I have this right? Remembering Memoization! For some applications, a lot of state does not to be saved, since initialization functions can be called early, and these functions will remember - (memoize) their results when called again,