On Jun 6, 9:08 pm, Robert Kern <robert.k...@gmail.com> wrote: > On 2013-06-06 16:41, Chris Angelico wrote: > > > Anyway, regardless of your language, there's always some criteria that > > can't be coded. Suppose the valid input for a function were "integers > > whose square roots are integers but whose cube roots are not". You > > won't easily get compile-time checking of that. > > Say that on a Haskell list, and they'll take it as a challenge. :-)
Yes, all programming communities have blind-spots. The Haskell community's is that Haskell is safe and safe means that errors are caught at compile-time. Unfortunately* the halting problem stands. When generalized to Rice theorem it says that only trivial properties of programs are algorithmically decidable: http://mathworld.wolfram.com/RicesTheorem.html And so the semantic correctness of a program -- a non-trivial property -- is not decidable. In short the Haskell dream is a pipe-dream**. Discussed in more detail here: http://blog.languager.org/2012/08/functional-programming-philosophical.html. Nevertheless I need to say: If a programmers comes to python from Haskell, he will end up being a better programmer than one coming from C or Java or… * actually fortunately considering that for most of us programming is our job :-) ** Haskellers would point out that there is agda which grows out of Haskell and in agda one can encode arbitrary properties of types. -- http://mail.python.org/mailman/listinfo/python-list