[Haskell-cafe] "show" for functional types

Josef Svenningsson josef.svenningsson at gmail.com
Wed Apr 5 12:42:29 EDT 2006


Sorry to barge in in the middle of your discussion here..

On 4/5/06, Robert Dockins <robdockins at fastmail.fm> wrote:
> There is a fair bit of disagreement about what referential
> transparency means.  I found the following link after googling around
> a bit; it seems to address some of these issues.
>
> http://www.cs.indiana.edu/~sabry/papers/purelyFunctional.ps
>
Do you have any reference to the fact that there is any diagreement
about the term? I know it has been used sloppily at times but I think
it is pretty well defined. See section 4 of the following paper:
http://www.dina.kvl.dk/~sestoft/papers/SondergaardSestoft1990.pdf
Readers digest:
First we need a denotational semantics and a corresponding equality
which I call '='. A language is then referentially transparent if for
all expressions e,e1 and e2, if e1 = e2 then e[x:=e1] = e[x:=e2].
Here e[x:=e'] denotes substitution where the variable x is replaced
with e' in the expression e.

So it's a standard substitutivity property. The only problem here is
that Haskell has a pretty hairy denotational semantics and I don't
think anyone has spelled it out in detail. The thing which I think
comes closest is the following paper which investigates the
denotational implications of have seq as a primitive:
http://www.crab.rutgers.edu/~pjohann/seqFinal.pdf

Cheers,

/Josef


More information about the Haskell-Cafe mailing list