KEYBOARD KEYBOARD Initiate Interactive Debug Session

Usage

The keyboard statement is used to initiate an
interactive session at a specific point in a function.
The general syntax for the keyboard statement is

   keyboard

A keyboard statement can be issued in a script,
in a function, or from within another keyboard session.
The result of a keyboard statement is that execution
of the program is halted, and you are given a prompt
of the form:

 [scope,n] -->

where scope is the current scope of execution (either
the name of the function we are executing, or base otherwise).
And n is the depth of the keyboard session. If, for example,
we are in a keyboard session, and we call a function that issues
another keyboard session, the depth of that second session 
will be one higher.  Put another way, n is the number of return
statements you have to issue to get back to the base workspace.
Incidentally, a return is how you exit the keyboard session
and resume execution of the program from where it left off.  A
retall can be used to shortcut execution and return to the base
workspace.

The keyboard statement is an excellent tool for debugging
FreeMat code, and along with eval provide a unique set of
capabilities not usually found in compiled environments.  Indeed,
the keyboard statement is equivalent to a debugger breakpoint in 
more traditional environments, but with significantly more inspection
power.
