On Fri, Dec 30, 2011 at 12:52 AM, Heinrich Apfelmus < apfel...@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
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe