axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] string input


From: daly
Subject: [Axiom-developer] string input
Date: Sat, 21 May 2005 09:03:20 -0500

Bill,

The WRAPPED output is the lisp data structure. 
It's too complex to explain here.

>I presume that there is no reason why this would not work
>when called directly from a lisp function, right?

Well, )lisp is actually just a lisp call. Nothing gets in the way.
That's why you get the "VALUE" output. You called a lisp function.
You could write:

)lisp (progn (|parseAndInterpret| "1+1") nil)

and get a NIL return value.

>What I really would like is to see the result also returned 
>in the value.

The result is returned in the value. The question is interpretation.
The lisp-level algebra is all data structures and embedded function
references. #<vector 10ccde54> is likely the "Union" infovec.

If you look at, say, int/algebra/CYCLES.NRLIB/code.lsp you'll see
the actual lisp code for the algebra. At the bottom of the file is
a very large data structure, called the "infovec", which is used
to look up references. This data structure is used throughout the
lisp code in the CYCLES domain. In the lisp code you'll see a lot
of "(QREFELT $ 73)" function calls. These are domain lookups in
the infovec. When it is read into memory the infovec is a vector
and looks like "#<vector a3b4c5d6>" in lisp output (where a3b4c5d6
is the hex address of the vector). "$" is the name of the vector
(and the name of the domain, a reference to "self") in the lisp code.
So (QREFELT $ 73) is a "quick vector reference" (actually, an 
optimized macro call I wrote. See src/interp/vmlisp.lisp.pamphlet)
to "self" for element 73 of the vector, that is, (elt "self" 73)

Since the infovec vector does not have a lisp name there is no
possible way to print it other than as hex. The CYCLES domain knows
what it is using, of couse, so the algebra print routine knows what to
print but lisp does not.

The best I can suggest is to  use the latex output. Since the
output isn't really a linear object there is no linear syntax.
You could invent a linear syntax but Knuth already did.

Tim




reply via email to

[Prev in Thread] Current Thread [Next in Thread]