Prevent evaluation



The reason I want this is the following: 

I am the author of Euler (see euler.rene-grothmann.de), which uses Maxima for symbolic computation. A symbolic expression in Euler is entered as 

>&diff(x^x,x) 
                                  x
                                 x  (log(x) + 1)

The result is a string, which is stored for Euler, and used in many Euler functions, as you will find out by checking the examples. But the output prints in Maxima's 2D display. How am I achieving this? Currently, I get Maxima to return the string simply by switching of display2d before I send the string to Maxima for evaluation. Next, I send the resulting string back to Maxima just for printing in 2D, turning on display2d beforehand. This works fine most of the time.

However, things like

>&factor(1000)

do not work. The string "2^3*5^3" is OK, but if I send it to printing, it is "simplified" to 1000. I already discovered, and you told me, how to switch that off. Doing it, prints the result correctly.

However, I have the next problem with

>&ev(invert(matrix([3,4],[5,6])),detout)
 
                                  [ - 3   2  ]
                                  [          ]
                                  [  5     3 ]
                                  [  -   - - ]
                                  [  2     2 ]

This returns a matrix statement devided by the determinant in the string. In fact, it returns

>@&ev(invert(matrix([3,4],[5,6])),detout)

 -matrix([6,-4],[-5,3])/2


If I pass that for printing, the determinant is multiplied inside as shown above. 

If I prevent simplification, it never prints in matrix 2D form. So there is no nice way to do this.

This, by the way, is strange to me: What is this matrix form which prints in 2D?

I wish, I could fix a little bit more inside Maxima. I would change a lot of things to fit Euler more closely. However, I am just communication with this mighty system using pipes.

Thanks for your response,

R.G.