On Thu, Apr 24, 2008 at 11:54 AM, root <[EMAIL PROTECTED]> wrote: > > 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. >
Sage just uses the mainstream language Python; we are not in the language design business. It's an interesting exercise to think through how each of the ideas you generously explained above is expressed using Python. -- William --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---