Appendix A: Functions and Instructions 851
part(
expression1
,
n
) ⇒
⇒⇒
⇒
expression
Simplifies
expression1
and returns the
n
th
argument
or operand, where
n
is > 0 and the number of
top-level arguments or operands returned by
part(
expression1
). Otherwise, an error is returned.
part(cos(pù x+3),1) ¸ 3+pøx
Note: Simplification changed the order of the
argument.
By combining the variations of
part(), you can
extract all of the sub-expressions in the simplified
result of
expression1
. As shown in the example to
the right, you can store an argument or operand
and then use
part() to extract further sub-
expressions.
Note: When using
part(), do not rely on any
particular order in sums and products.
part(cos(pù x+3)) ¸ 1
part(cos(
pù x+3),0) ¸ "cos"
part(cos(
pù x+3),1)! temp ¸
3+
pøx
temp
¸ pøx+3
part(temp,0)
¸ "+"
part(temp)
¸ 2
part(temp,2)
¸ 3
part(temp,1)
! temp ¸ pøx
part(temp,0)
¸ "ù "
part(temp)
¸ 2
part(temp,1)
¸ p
part(temp,2)
¸ x
Expressions such as (x+y+z) and (xì yì z) are
represented internally as (x+y)+z and (xì y)ì z.
This affects the values returned for the first and
second argument. There are technical reasons
why
part(x+y+z,1) returns y+x instead of x+y.
part(x+y+z) ¸ 2
part(x+y+z,2)
¸ z
part(x+y+z,1)
¸ y+x
Similarly, xù yù z is represented internally as
(xù y)ù z. Again, there are technical reasons why
the first argument is returned as yøx instead of
xøy.
part(xù yù z) ¸ 2
part(x
ù yù z,2) ¸ z
part(x
ù yù z,1) ¸ yøx
When you extract sub-expressions from a matrix,
remember that matrices are stored as lists of lists,
as illustrated in the example to the right.
part([a,b,c;x,y,z],0) ¸ "{"
part([a,b,c;x,y,z])
¸ 2
part([a,b,c;x,y,z],2)
! temp ¸
{x y z}
part(temp,0)
¸ "{"
part(temp)
¸ 3
part(temp,3)
¸ z
delVar temp
¸ Done