- From: David Carlisle <davidc@nag.co.uk>
- Date: Sun, 7 Jun 2009 11:14:20 +0100
- To: andreas.strotmann@ualberta.ca
- Cc: www-math@w3.org
Andreas. > The current spec of MathML3 requires at least one bvar child for > lambda I don't think so. The current draft has the same wording as mathml2: "n (possibly 0) bound variables." http://www.w3.org/TR/MathML3/chapter4.html#contm.lambda In a lambda construct with n (possibly 0) bound variables, the first n children are bvar elements Some of the examples have x1 .... xn but that's just the usual awkwardness of having explicit 1-based list examples of possibly empty lists. If n is zero you have to interpret 1 ... n as empty. One reason why this is currently not as clear as it should be is that the syntax table for lambda (and every other symbol) is supposed to link to similarly named productions in the schema (where of course cardinality constraints must be explicit. The bvarQ production is supposed to mean 0 or more bvars, each with a possibly annotated ci child. I couldn't get the schema organised along these lines in time for this draft, for which I appologise. It will be made public as soon as it exists (ie soon, and well before the next working draft). That said, I don't think a zero argument lambda is at all useful, it's the same as its body. > to construct a 0-ary function (like random() or timerightnow()). I disagree. If <csymbol>random</csymbol> is a 0-ary random function then <apply><random/><apply> is the 0-ary application of that function, so a particular random number which doesn't need a lambda construct, and <lambda><random/></lambda> is the same thing as <random/>. > This means that the transformation rule for lambda to "strict" MathML is > broken as-is in the case of 0-ary lambda, as there is no bvar in the > resulting apply to trigger binding. "Rewrite: lambda " applies in this case and <lambda><random cd="random"/></lambda> maps to <bind> <csymbol cd="fns1">lambda</csymbol> <csymbol cd="random">random</csymbol> </bind> which is <OMBIND> <OMS cd="fns1" name="lambda"/> <OMS cd="random" name="random"/> </OMBIND> Both MML bind and OMBIND explictly allow 0 variables. David ________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________
Received on Sunday, 7 June 2009 10:15:06 UTC