[Haskell-cafe] Building "production stable" software in Haskell
bf3 at telenet.be
Tue Sep 11 06:43:31 EDT 2007
Well, I actually meant more something like the imperative equivalences
of "code coverage tools" and "unit testing tools", because I've read
rumors that in Haskell, unit testing is more difficult because lazy
evaluation will cause the "units" that got tested to be evaluated
completely different depending on how they are used. In strict
languages, this is not the case.
Neil Mitchell wrote:
> Hi Peter,
>> The way I see it as a newcomer, Haskell shifts the typical imperical
>> programming bugs like null pointers and buffer overruns towards
>> "space/time leaks", causing programs that either take exponentially long
>> to complete, stack overflow, or fill up the swap file on disc because
>> they consume gigabytes of memory.
> Time bugs are quite rare - usually a simple profiling will fix them
> up, and they are exactly the same sorts of bugs that exist in an
> imperative programming language. Usually its a case of picking a
> better algorithm, or thinking clever thoughts.
> Space leaks are much more tricky - there are profiling tools, but I've
> never got enough experience using them to say anything more than that.
>> Other bugs I found are incomplete
>> pattern matches at runtime, but I already got an email of how to fix
>> this using an external tool
> Did the email suggest using Catch? http://www-users.cs.york.ac.uk/~ndm/catch/
> If you care enough about pattern matching, you can eliminate them all
More information about the Haskell-Cafe