852 Appendix A: Functions and Instructions
The example Program Editor function to the right
uses
getType() and part() to partially
implement symbolic differentiation. Studying and
completing this function can help teach you how
to differentiate manually. You could even include
functions that the cannot differentiate, such as
Bessel functions.
:d(y,x)
:Func
:Local f
:If getType(y)="VAR"
: Return when(y=x,1,0,0)
:If part(y)=0
: Return 0
¦ y=p,ˆ,
i
,numbers
:part(y,0)
! f
:If f="
L" ¦ if negate
: Return
ë d(part(y,1),x)
:If f="
−" ¦ if minus
: Return d(part(y,1),x)
ì d(part(y,2),x)
:If f="+"
: Return d(part(y,1),x)
+d(part(y,2),x)
:If f="
ù "
: Return part(y,1)
ù d(part(y,2),x)
+part(y,2)
ù d(part(y,1),x)
:If f="{"
: Return seq(d(part(y,k),x),
k,1,part(y))
:Return undef
:EndFunc
PassErr CATALOG
PassErr
Passes an error to the next level.
If “errornum” is zero,
PassErr does not do
anything.
The
Else clause in the program should use ClrErr
or PassErr. If the error is to be processed or
ignored, use
ClrErr. If what to do with the error
is not known, use
PassErr to send it to the next
error handler. (See also
ClrErr.)
See
ClrErr program listing example.
Pause CATALOG
Pause [
expression
]
Suspends program execution. If you include
expression
, displays
expression
on the Program I/O
screen.
expression
can include conversion operations such
as
4
44
4DD and 4
44
4Rect. You can also use the 4
operator to perform unit and number base
conversions.
If the result of
expression
is too big to fit on a
single screen, you can use the cursor pad to scroll
the display.
Program execution resumes when you
press ¸.
Program segment:
©
:ClrIO
:DelVar temp
:1
"temp[1]
:1
"temp[2]
:Disp temp[2]
:
¦ Guess the Pattern
:For i,3,20
: temp[i
ì2]+temp[iì1]"temp[i]
: Disp temp[i]
: Disp temp,"Can you guess the
next","number?"
: Pause
:EndFor
©