
On Mon, Mar 30, 2009 at 02:01:55PM +0200, Sergey Mikhanov wrote:
Hi community,
As my Haskell programs grow above 100 lines of code, I feel the necessity to trace the execution of them more closely. In imperative languages one may use logging facilities for checking intermediary values of variables, the execution flow, etc. How this usually handled in Haskell (I bet that despite the fact that in Haskell it is relatively easier to write bug-free and checked code, the industrial systems still need some logging being done)?
It depends what you want to do. If you just want to print out some intermediate values to do a little debugging, try the 'trace' function from Debug.Trace. If you actually want an industrial-strength logging system, there's the hslogger library: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hslogger Generally collecting some information while a computation progresses can be done with the Writer monad, from Control.Monad.Writer. -Brent