Re: Does Codd's view of a relational database differ from that ofDate&Darwin?[M.Gittens]
Date: Sat, 25 Jun 2005 07:31:38 -0400
"Marshall Spight" <marshall.spight_at_gmail.com> wrote in message
> VC wrote:
>> "Marshall Spight" <marshall.spight_at_gmail.com> wrote in message
> I see: you're saying "everyone agrees with me so I must be right."
A strange interpretation of my words indeed. I just used your own definition.
According to your own definition:
You run your function once, you have one character on a piece of paper, you run your function the next time, you have two characters on a piece of paper. The *result* of the function execution is different, determined not solely by its arguments but also by the previous state of the world. Therefore, the function is not referentially transparent. If, after multiple applications of the function, you always saw one character, then, according to your definition, the function would be r. t.
Parenthetically, a more common definition of r.t. is :
"An expression E is referentially transparent if any subexpression and its
value (the result of evaluating it) can be interchanged without changing the
value of E."
(http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?referential+transparency), having been used at least since 1977. Whatever definition is used, a side-effect function is clearly not r.t. , be it input, output, assignment , exceptions and so forth..
> I went through a big round-and-round on this on comp.lang.functional
> a few years back. You're right in that it is "commonly accepted"
> to lump both input and output together as things that break RT,
> but in fact, only input breaks it, by definition.
That is incorrect. See above.
> In any event, your model is too primitive because it doesn't
> distinguish between input and output. It is *input* that breaks
> referential transparency, not output.
>. I say, give me any function you care to,
> and I'll run it on a machine that does output as it executes the
I do not understand this. I give you f(x) = 2*x . Why would "the nachine" would ouput anything ? Does it [the machine] have a mind of its own and outputs willy-nilly some random stuff ? I did not instruct "the machine" to do so.
Anyway, I do not see what else I can contribute here. Others maybe more patient.
Received on Sat Jun 25 2005 - 13:31:38 CEST