panAxiom developers,
I just wanted to mention something here that I just learned about how
the Axiom interpreter handles option arguments. When discovering how
the 'draw' operations in Axiom processes optional arguments, e.g.
draw(sin(x), x=1..10, title=="sin function")
I realized the interpreter does something rather clever but probably
quite unexpected. The problem is that (unlike Aldor) SPAD does not
provide built-in support for calling functions with optional
arguments. Instead what it does is collect all the arguments
containing == into a List *and* then it applies the name to the left
of == as a function to the value on the right. So much to my surprize:
(1) -> (x+->x)(sin==x,cos==y)
(1) [sin(x),cos(y)]
Type: List Expression Integer
is equivalent to:
(2) -> (x+->x)([sin(x),cos(y)])
(2) [sin(x),cos(y)]
Type: List Expression Integer
The list of optional arguments is always passed as the last argument
to the function. This is completely general so one can write for
example:
(3) -> ((x,y)+->[x,y])(sin==x,n,cos==y)
(3) [n,[sin(x),cos(y)]]
Type: List Any
What do you think? Do you like that, or is this something that should
be implemented in a deeper way?
Regards,
Bill Page.
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
open-axiom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel