
On Jun 26, 2014, at 3:10 AM, Erik Hesselink
On Wed, Jun 25, 2014 at 5:47 PM, Michael Orlitzky
wrote: On 06/25/2014 11:24 AM, Francesco Ariis wrote:
On Wed, Jun 25, 2014 at 02:45:37PM +0200, Mateusz Kowalczyk wrote:
While I disagree with initial view that testing is useless, I certainly disagree with this approach too. There are plenty proof-assistants using type-checking to prove programs correct. That's not to say Haskell itself is suited for such task. If you have a type system strong enough, classical tests are no longer required because you can encode all the properties you need in types proving at compile time that your program is in fact correct.
For non-believers, here is a blog post that opened my eyes on the matter [1].
None of that helps if you write the wrong program. Your program may typecheck, but if you're expecting "42" as output and your program hums the Star Trek theme instead, the fact that it correctly does the wrong thing won't be much consolation.
The same goes for any kind of testing, though. All these (writing the program, giving types for the program and testing the program) are different ways of specifying the same thing. The benefit from doing it twice in different ways, is that it's unlikely that you'll do it wrong twice *in the same way*.
So, tell me about QuickCheck… why is this thing thought so highly of? (this is a rhetorical question, I don’t need an answer :-) The problem isn’t really the unexpected humming of a song. It’s answering 43 when you’re expecting 42. Cheers, Bob
Erik _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe