Why is *print-circle* set to T by default? WAS: grinding, etc.
Subject: Why is *print-circle* set to T by default? WAS: grinding, etc.
From: Michel Talon
Date: Wed, 09 Feb 2011 17:40:06 +0100
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