On Fri, Dec 30, 2011 at 8:12 AM, Conal Elliott <co...@conal.net> wrote:
> 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. > > > It might be accurate, but it's not denotational. - Conal > Moreover, afaict, the "Awkward Squad" operational semantics tackles only a tiny fraction of the IO type. One of the strengths of Haskell IO is that it can be extended easily via the FFI. And I guess that strength is also a theoretical weakness in the sense that only a tiny fraction of the IO interface has even an operational semantics. - Conal
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe