[Haskell-cafe] ANN: To Kata Haskellen Evangelion

Joachim Durchholz jo at durchholz.org
Wed Jul 31 17:54:05 UTC 2019


Haskell is pretty thorough in terms of purity, but it had its blind 
spots around nontermination.
I believe that some thought has been spent on mitigating the issues, but 
I also believe that one would have to redesign parts of the language to 
fully address them.

I agree that one should not count the unsafeXXX functions.

Am 31.07.19 um 14:23 schrieb Cosmia Fu:
> I am not sure what you are talking about, but in the scope of Haskell, 
> even functions or values involving IO are pure if you do not count the 
> unsafeXXX.
> 
> On Wed, Jul 31, 2019 at 7:15 PM Brandon Allbery <allbery.b at gmail.com 
> <mailto:allbery.b at gmail.com>> wrote:
> 
>     I didn't mean purity in the Haskell sense, but the more general
>     technical sense the original message seemed to me to be reaching
>     for. Purity in the Haskell sense is indeed a more limited question.
>     But languages that are useful int he real world need to make
>     tradeoffs, and even Haskell's version of purity includes such (IO is
>     in many ways a wart, but there's going to be a wart *somewhere*).
> 
>     On Wed, Jul 31, 2019 at 1:22 AM Joachim Durchholz <jo at durchholz.org
>     <mailto:jo at durchholz.org>> wrote:
> 
>         Am 30.07.19 um 21:35 schrieb Brandon Allbery:
>          > And, well, it's a computer language. "Proper
>          > purity" not gonna happen in general, unless the result is a
>         useless toy.
> 
>         I do not think that the limitations from Haskell's design
>         choices can be
>         generalized to all programming languages in this way.
> 
>         Purity (i.e. no side effects) is easy in strict languages, for
>         example.
> 
>         In a nonstrict language, you'd need a proof of termination to have
>         purity (nontermination is impure).
> 
>         Another approach would be to control impurities. Based on the
>         observation that all code is impure, such as heating the CPU,
>         taking
>         time, increasing CPU counters, and we do not care about these
>         impurities. One could design a language where one could e.g.
>         write a
>         completely impure logger, call it from pure code, and statically
>         determine that these impurities do not affect the pure code.
> 
>         While I think that your pessimism is justified for Haskell where
>         pretty
>         fundamental design choices would have to be reverted, I conclude
>         it is
>         not necessarily justified in the generality stated.
> 
>         Regards,
>         Jo
>         _______________________________________________
>         Haskell-Cafe mailing list
>         To (un)subscribe, modify options or view archives go to:
>         http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>         Only members subscribed via the mailman list are allowed to post.
> 
> 
> 
>     -- 
>     brandon s allbery kf8nh
>     allbery.b at gmail.com <mailto:allbery.b at gmail.com>
>     _______________________________________________
>     Haskell-Cafe mailing list
>     To (un)subscribe, modify options or view archives go to:
>     http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>     Only members subscribed via the mailman list are allowed to post.
> 
> -- 
> Sent from my iPhone



More information about the Haskell-Cafe mailing list