# Re: views of binary operations

From: erk <eric.kaun_at_gmail.com>
Date: 17 Jul 2006 04:47:35 -0700

> Marshall wrote:
>
> > Consider named views of binary operations on relations.
> >
> > Given a relational operator "op" and relation variables A and B,
> > and a declaration of:
> >
> > r = A op B
> >
> > the language evaluates the expression "A op B" and assigns the
> > result to r.
> >
> > However, if we declare this as a view, we do not evaluate A op B
> > at the time of the declaration, but instead (re)evaluate A op B each
> > time we make reference to r in later expressions.
> >
> > r = view(A op B)
> >
> > Is it the case that we want exactly the above, or might we
> > want a more fine-grained control? Might we ever want
> >
> > r = A op view(B)
> >
> > In other words, the value of A at the time of the declaration and
> > value of B at the time of evaluations of r? In which case, we
> > then have four possibilities:
> >
> > r = A op B
> > r = view(A) op B
> > r = A op view(B)
> > r = view(A) op view(B)
> >
> > (Actual evaluation of the expression is deferred if either of
> > the operands is a view.)
> >
> > In other words, when we have a view of a binary relation operation,
> > are we necessarily creating a view of the entire expression, or are
> > we making views of the operands?
>
> I cannot make sense of what you are asking. Are you confusing views and
> snapshots by any chance?

I suppose it's like an object, in that you don't have referential transparency, like in:

c1 = b.c // c1 ref now "points" to b's c instance     print(c1.something) // output
// time passes, something else changes c.something     print(c1.something) // different output

Just early-morning ramblings...

• erk
Received on Mon Jul 17 2006 - 13:47:35 CEST

Original text of this message