[Haskell-cafe] On the purity of Haskell
Conal Elliott
conal at conal.net
Fri Dec 30 17:12:05 CET 2011
On Fri, Dec 30, 2011 at 12:52 AM, Heinrich Apfelmus <
apfelmus at quantentunnel.de> wrote:
> Conal Elliott wrote:
>
>> I wrote that post to point out the fuzziness that fuels many
>> discussion threads like this one. See also http://conal.net/blog/posts/**
>> notions-of-purity-in-haskell/<http://conal.net/blog/posts/notions-of-purity-in-haskell/>and the
>> comments.
>>
>> I almost never find value in discussion about whether language X is
>> "functional", "pure", or even "referentially transparent", mainly
>> because those terms are used so imprecisely. In the notions-of-purity
>> post, I suggest another framing, as whether or not a language and/or
>> collection of data types is/are "denotative", to use Peter Landin's
>> recommended replacement for "functional", "declarative", etc. I
>> included some quotes and a link in that post. so people can track
>> down what "denotative" means. In my understanding, Haskell-with-IO is
>> not denotative, simply because we do not have a
>> (precise/mathematical) model for IO. And this lack is by design, as
>> explained in the "toxic avenger" remarks in a comment on that post.
>>
>> I often hear explanations of what IO means (world-passing etc), but I
>> don't hear any consistent with Haskell's actual IO, which includes
>> nondeterministic concurrency. Perhaps the difficulties could be
>> addressed, but I doubt it, and I haven't seen claims pursued far
>> enough to find out.
>>
>
> Personally, the operational semantics given in SPJ's "Tackling the Awkward
> Squad" always struck me as an accurate model of how GHC performs IO.
>
>
>
> Best regards,
> Heinrich Apfelmus
>
> --
> http://apfelmus.nfshost.com
>
It might be accurate, but it's not denotational. - Conal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20111230/97e3af5b/attachment.htm>
More information about the Haskell-Cafe
mailing list