[om] A Proposal for extending OpenMath with structure sharing

Bruce Miller bruce.miller at nist.gov
Fri Apr 5 01:17:35 CEST 2002


Richard Fateman wrote:
> This notion of identity is tied to referential
> transparency, a well understood issue among programming
> language experts (this is a much smaller set than
> "expert programmers" and probably not a subset...),
>  especially those who think about
> functional programming.
> 
> 
> See, for example,
> http://burks.brighton.ac.uk/burks/foldoc/50/97.htm
> for a definition I found on-line with google.
> 
> Essentially, if you say x=y,  then for any
> function f,  f(x) = f(y).
> 
> Also, f(x)=f(x).
> 
> In this case f(random(100)) is not equal to f(random(100)).
> Also, if x-x = 0, this is not true for x=[-1,1].

I guess I'm not in the above mentioned class, since I'm not
quite getting the point.  Clearly random lacks referential
transparency.  In a pure `arithmetic on intervals',
x-x (for x=[-1,1]) gives [-2,2] and would have referential
transparency.  For the other `interval-like-arithmetic'
(see my previous message), where x-x = 0, you
would not have referential transparency.  Intuitively,
this shouldn't be surprising; the system is attempting
to infer the history of the computation, not working
purely with the value.  Have I understood you correctly
so far?

> functional programming and lambda-binding provide
> a language for addressing and solving these problems.

I would think that lambda binding, which is already in
OM, would be sufficient for semantic sharing -- but what
do I know?
Are you suggesting that OM should restrict itself to
objects with referential transparency?  Or that if we
dont, we end up with all the complications of procedural
programming languages?

> It might be possible to find other solutions, even better
> solutions.  But I suggest that any recommendations first
> address (a) How could this be solved by lambda binding?
> (b) If it cannot be solved by (a), then another better solution
> can be proposed.

If I've understood enough of what is going on here, it seems that
one big issue is how to allow syntactic sharing without inadvertently
implying semantic sharing.



--
om at openmath.org  -  general discussion on OpenMath
Post public announcements to om-announce at openmath.org
Automatic list maintenance software at majordomo at openmath.org
Mail om-owner at openmath.org for assistance with any problems



More information about the Om mailing list