James Davenport skrev 2015-05-04 11.45:
I am not sure that I am familiar enough with Popcorn to understand the
details, but I'll try.
What you seem to want is a context in which 'area' is fns1.lambda[$a, $b ->
$a * $b].
This is, I claim, conceptually no different from a context in which 'area'
is 42.
An old-fashioned function programmer might apply fns1.lambda[$area ->
context] and apply it to 42 (or fns1.lambda[$a, $b -> $a * $b]) , but this
is ratehr in need to syntactic sugar.
Syntactic sugar in this case being things like functional programming 'let'
or 'where' clauses? E.g. the intent is to be able to write something like
let area = fns1.lambda [$a, $b -> $a * $b] in
area(3,4)
or
area(3,4)
where area = fns1.lambda [$a, $b -> $a * $b]
I am reminded of the 'where clause' example I used in
https://trac.mathweb.org/OM3/ticket/152 (the point of said proposal was
rather to discuss how to make STS declarations for these kind of things,
than to provide the syntactic sugar per se). The hypothetical
lambdacalc1.erehw symbol used there would allow writing said where clause as
<OMBIND>
<OMA>
<OMS cd="lambdacalc1" name="erehw"/>
<OMBIND>
<OMS cd="fns1" name="lambda"/>
<OMBVAR><OMV name="a"/><OMV name="b"/></OMBVAR>
<OMA><OMS cd="arith1" name="times"/>
<OMV name="a"/>
<OMV name="b"/>
</OMA>
</OMBIND>
</OMA>
<OMBVAR><OMV name="area"/></OMBVAR>
<OMA>
<OMV name="area"/>
<OMI>3</OMI>
<OMI>4</OMI>
</OMA>
</OMBIND>
if I interpreted the intent correctly.
Lars Hellström
Have you looked at the prog1 CD, which might be what you want.
James
Quoting "Wenzel, Ken" <ken.wen...@iwu.fraunhofer.de>:
Hello,
I wonder what is the correct way to represent a named function in OpenMath.
For example, I like to describe a function named "area" that computes the
area of a rectangle.
The corresponding Popcorn expression for the anonymous function is:
fns1.lambda[$a, $b -> $a * $b]
What is now the correct method to name this function.
I can, for example, just give it an ID like
fns1.lambda[$a, $b -> $a * $b] : area
and invoke it with #area(3, 4) at an later point.
But I think this is some kind of structure sharing since the lambda
expression is
simply copied into the resulting OpenMath object and not the invocation of
a single function named "area".
I would be grateful if somebody can help me.
Best regards,
Ken
_______________________________________________
Om mailing list
Om@openmath.org
http://openmath.org/mailman/listinfo/om
James Davenport
National Teaching Fellow 2014
Hebron & Medlock Professor of Information Technology, University of Bath
OpenMath Content Dictionary Editor
Director of Studies EPSRC Doctoral Taught Course Centre for HPC
Chair, IMU Committee on Electronic Information and Communication
Vice-President and Academy Trustee, British Computer Society
SW Coordinator, Computing at School Network of Excellence
_______________________________________________
Om mailing list
Om@openmath.org
http://openmath.org/mailman/listinfo/om
_______________________________________________
Om mailing list
Om@openmath.org
http://openmath.org/mailman/listinfo/om