Semantics of EV (plaintext)



"Stavros Macrakis" <stavros.macrakis@verizon.net> writes:

> [W. J. wrote:]

> > Isn't this EV's central idea, actually, since in its basic form
> > EV(<expression>) == ?MEVAL(?MEVALATOMS('(<expression>)))
> > EV(<expression>,NOEVAL) == ?MEVALATOMS('(<expression>))
> > modulo simplification and disrepping.
> 
> Fuller discussion coming, but forcing resimplification is actually an
> important application of EV:

[...]

> Except for that case, you could say that ev is equivalent to
> 
>      expand(?meval(?mevalatoms('(<expression>))),expop,expon)
> 
> But I'm not sure that actually makes it easier to understand!!

The point is that, in its most basic form EV is the user interface to
?MEVALATOMS.  Conversely, ?MEVALATOMS is always done (in a modified
environment, in general), even with the most abstruse collection of
arguments to EV.  The following examples you gave are completely
explained by this basic functionality:

  ev('(counteval(0))) => counteval(1)

  ev('('4)) => 4

  count:100$
  ev(counteval('count)) => counteval(101)

  ev(counteval(count),noeval) => counteval(100)

Of course, the explanation you gave for these examples does not
substantially differ from what I say but there seems to be a
significant difference in the point of view.

I propose to start the description from the most basic functionality,
even though it may not be the most useful one, and to gradually
develop more complex configurations and common idioms.

Wolfgang