[om] Proposed bug fix: deprecate Binding Object currying rule
Richard Fateman
fateman at cs.berkeley.edu
Thu Sep 26 19:21:56 CEST 2002
I have not been able to understand the object to the currying
rule, though the lack of currying in lisp has not been a
problem for me, so I'm not going to raise a fuss either way.
Common Lisp does however have a very elaborate
mechanism for optional, default, keyword arguments. The Common
Lisp Object System (CLOS) provides a mechanism whereby the
argument types, and perhaps numbers,
determine the meaning of a function (generic
functions), and this may provide currying.
I suspect that the OM documents would benefit by running
them through a spelling checker. Occurrence is spelled wrong
in the paragraphs slated for deletion. Where else?
RJF
Andreas Strotmann wrote:
> Michael,
>
> On Thu, 26 Sep 2002, Michael Kohlhase wrote:
>
>>Could you please make clear what exactly you are poposing to delete?
>>If you say "the two paragraphs", I frear that you are also throwing out
>>parts of the alpha-conversion stuff, which we need to keep in the
>>standard. Maybe you could just send around the proposed wording.
>>
>
> I did specify those paragraphs, by giving their beginning and ending. I
> believe that I was careful not to touch the alpha conversion "stuff",
> though it might look at first glance like I did. The discussion on the
> meaning of binders with two occurrences of the same variable is clearly
> part of the Currying rule, but the discussion of variable renaming
> following it is not.
>
> Anyway, here's a copy of the two paragraphs I propose to remove in
> whichever way is deemed most appropriate:
>
> Binding of several variables as in:
> binding(B; v1; : : : ; vn;C)
> is semantically equivalent to composition of binding of a single
> variable,
> namely
> binding(B; v1; (binding(B; v2; (: : : ; binding(B; vn;C) : : :):
> Note that it follows from this that repeated occurences of the same
> variable in a binding
> operator are allowed. For example the object
> binding(lambda; v; v; application(times; v; v))
> is semantically equivalent to:
> binding(lambda; v; binding(lambda; v; application(times; v; v)))
> so that the outermost binding is actually a constant function (v does
> not
> occur free in the
> body application(times; v; v)))).
>
>
> - Andreas
>
> PS: I'm submitting this now because I can't come to Pisa myself to
> present it to the meeting.
>
> --
> 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
>
--
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