Why is *print-circle* set to T by default? WAS: grinding, etc.



Stavros Macrakis wrote:

> I don't know why *print-circle* is set to T by default in Maxima -- it
> makes human reading of printed sexpressions much harder, even when there
> *are*
> repeated subexpressions -- see examples below.   

Indeed doing that allows to always see the pair (operator SIMP) in the 
correct place, and thus reconstruct a formula appropriate for 
C evaluation, by locating the operator and its arguments. 
With x:y*(z + t^2 ) i had (as in your example) :

MAXIMA> #$x^2$

((MTIMES . #1=(SIMP)) (#2=(MEXPT . #1#) $Y 2)
 (#2# ((MPLUS . #1#) (#2# $T 2) $Z) 2))

and the #2 was even more worrisome for my purpose than the #1. Here the 
expression is "simplified" to y^2*(z+t^2)^2 so now we have three
(MEXPT SIMP) which are shared under #2, not that obvious to the beginner.


Grind doesn't mess with print-circle, but from what i have tested when 
picking sufficiently small parts of the above expression with car cdr cddr 
etc. the #n automatically get substituted at some point.

-- 
Michel Talon