Axiom's "solution" to the lattice problem is to use an interpreter for user interaction. Instead of just talking to a top level lisp command prompt, you interact with the interpreter.
The interpreter looks at the arguments and classifies them by type. It looks for "modemaps" that define the functions (e.g. all lattice functions) and finds a minimum type matching modemap. The process is repeated "working outward" for the final expression type. Thus Axiom has some 10000 functions with approximately 3000 names in the name space. The user can explicitly override this process in various ways. You might say lattice(args)$Posets to explictly override the interpreter (although it will fail if the argument types don't match). Given the limits of naming conventions by various fields of math, the interpreter provides a way to overload names in useful and naturals ways. Thus a single function (say, map) can have multiple well defined meanings (there are 80 map functions in Axiom). In compiled code (Spad), you must specify exactly which function of which domain you intend to call. If you're ambiguous about it, the compiler gives you a suitably ambiguous error message. Perhaps someone might give some thought to a Sage-interpreter that helps in name resolution rather than having 80 people try to define which "map" is the "correct" map. Tim Daly --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---