Previous Up Next

8.2.3  Top and leaves of an expression

An expression can be represented by a tree. The top of the tree is either an operator or a function and the leaves of the tree are the arguments of the operator or function (see also Section 6.1.10).

The sommet command finds the top of an expression.

Examples

sommet(sin(x+2))
     
sin           
sommet(x+2*y)
     
+           

The op or feuille command finds the list of the leaves of an expression.

Examples

op(sin(x+2))

or:

feuille(sin(x+2))
     
x+2           
op(x+2*y)

or:

feuille(x+2*y)
     
x,2 y           

If the top of an expression expr is an infixed operator, the left hand side will be expr[1] and the right hand side will be expr[2]. The left and right commands are alternative commands to find the sides (see Section 5.2.4, Section 6.5.1, Section 6.6.2, Section 6.3.6, Section 9.3.4 and Section 9.3.5 for other uses of left and right.)

Examples

sommet(y=x^2)
     
=           
left(y=x^2)
     
y           
right(y=x^2)
     
x2           
Remark.

If a function is defined by a program (see Section 25.1.2) then the top will be the function ’program’ and the leaves will be a sequence consisting of the arguments of the defined function, followed by a sequence of 0s (one for each argument) followed by the body of the function. For example, define the pgcd function:

pgcd(a,b):={ local r; while (b!=0) { r:=irem(a,b); a:=b; b:=r; } return a; }

Then:

sommet(pgcd)
     
program           
feuille(pgcd)[0]

or:

op(pgcd)[0]
     
a,b           
feuille(pgcd)[1]

or:

op(pgcd)[1]
     
0,0           
feuille(pgcd)[2]

or:

op(pgcd)[2]
{ local r; while(b<>0) { r:=irem(a,b); a:=b; b:=r; } return a; }

Previous Up Next