> So a language is referentially transparent if replacing a sub-term with 
> another with the same
> denotation doesn't change the overall meaning?

Isn't this just summarizing the distinguishing characteristic of a denotational 
semantics?

My understanding is that RT is about how easy it is to carry out _syntactical_ 
transformations
of a program that preserve its meaning. For example, if you can freely and 
naively inline a
function definition without having to worry too much about context then your PL 
is deemed
to possess lots of RT-goodness (according to FP propaganda anyway; note you 
typically can't
freely inline function definitions in a procedural programming language because 
the actual
arguments to the function may involve dastardly side effects; even with a 
strict function-calling
semantics divergence will complicate matters).

Chris



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to