[Haskell-cafe] ANN: To Kata Haskellen Evangelion

Vanessa McHale vamchale at gmail.com
Wed Jul 31 20:33:53 UTC 2019


I'm not convinced that nontermination would be worth redesigning the
language - the research implementations seem rough.

(Moreover, one of the advantages of laziness is precisely that one can
write a function like take that works on both streams and lists).

Cheers,
Vanessa

On 7/31/19 12:54 PM, Joachim Durchholz wrote:
> 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
>
> _______________________________________________
> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: OpenPGP digital signature
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20190731/5b22541f/attachment.sig>


More information about the Haskell-Cafe mailing list