<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
A perhaps acceptable notion of the property we want (purity etc.) is
<br>
that all the extensions of the purely functional core language of
Haskell<br>
(say the lazy lambda calculus extended with data constructors, etc)
are <br>
_conservative_, that is all the equations that hold<br>
in the pure core language still hold in the extended language.<br>
<br>
For a part of Concurrent Haskell such a conservativity result is
shown in<br>
D.Sabel , M. Schmidt-Schauß. On conservativity of Concurrent
Haskell. Frank report 47, 2011.<br>
<a class="moz-txt-link-freetext" href="http://www.ki.informatik.uni-frankfurt.de/papers/frank/frank-47.pdf">http://www.ki.informatik.uni-frankfurt.de/papers/frank/frank-47.pdf</a><br>
It also shows that with arbitrary use of unsafeInterleaveIO
conservativity does not hold.<br>
<br>
And of course the result does not capture any IO-operation (only
takeMVar, putMVar and spawning threads are considered),<br>
but it may be extended to more operations ...<br>
<br>
Just my two cents,<br>
David<br>
<br>
On 30.12.2011 02:07, Conal Elliott wrote:
<blockquote
cite="mid:CAD6SzRLDAf3XBcwNkA6bGFq5o9xeZ6k2W9MDTCs0Rr6bUtfiaw@mail.gmail.com"
type="cite">I wrote that post to point out the fuzziness that
fuels many discussion threads like this one. See also <a
moz-do-not-send="true"
href="http://conal.net/blog/posts/notions-of-purity-in-haskell/">http://conal.net/blog/posts/notions-of-purity-in-haskell/</a>
and the comments.<br>
<br>
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.<br>
<br>
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.<br>
<br>
- Conal<br>
<br>
<div class="gmail_quote">On Thu, Dec 29, 2011 at 4:42 PM, Steve
Horne <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:sh006d3592@blueyonder.co.uk">sh006d3592@blueyonder.co.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>
<div class="h5"> On 30/12/2011 00:16, Sebastien Zany
wrote:
<blockquote type="cite">Steve Horne wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><span>I
haven't seen this view explicitly articulated
anywhere before</span></div>
</blockquote>
<div><br>
</div>
<div>See Conal Elliott's blog post <a
moz-do-not-send="true"
href="http://conal.net/blog/posts/the-c-language-is-purely-functional"
target="_blank">The C language is purely
functional</a>.</div>
</div>
</blockquote>
</div>
</div>
Thanks - yes, that's basically the same point. More concise
- so clearer, but not going into all the same issues - but
still the same theme.<br>
<br>
</div>
_______________________________________________________</blockquote>
</div>
</blockquote>
</body>
</html>