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
-~----------~----~----~----~------~----~------~--~---

Reply via email to