Accessing Top-level Commands after Rebinding Their Names
|
Some commands in Maple have similar names. For example, the top-level command name diff is similar to the package-level command name VectorCalculus:-diff.
|
|
When the short-form name of package-level command is defined using the with command, the short-form name is bound to the package-level command. This happens regardless of whether a top-level command with the same name, protected or not, exists. For example, after issuing with(VectorCalculus, diff), the command name diff refers to the package-level VectorCalculus:-diff command.
|
|
You can still directly access the top-level command after its name has been rebound if the package invoked is implemented as a module, but not if the package is implemented as a table.
|
|
How to determine if a package is implemented as a module or table
|
|
|
Use the type command to determine if a package is implemented as a module or as a table.
|
•
|
type(packagename, `module`);
|
•
|
type(packagename, table);
|
>
|
type(networks, '`module`');
|
>
|
type(VectorCalculus, '`module`');
|
|
Once you have determined how the package has been implemented, follow the instructions in one of the following sections.
|
|
|
Packages Implemented as Modules
|
|
|
To use a top-level command after its name has been rebound to a package-level command, use the colon-dash syntax (:-commandname).
|
|
The following example intentionally employs an error message to illustrate which command level is used.
|
|
Note: The message refers to the top-level diff command.
|
|
Now invoke the VectorCalculus package.
|
| (3) |
|
The VectorCalculus package contains a diff command. For differences between the two commands, see diff and VectorCalculus:-diff.
|
|
Enter the diff(); command again.
|
|
The message now indicates that the error is generated by the VectorCalculus package-level command and not the top-level diff command.
|
|
To use the top-level diff command, use the :- syntax.
|
|
Note: The message once again indicates that the error is generated by the top-level diff function.
|
|
|
Packages Implemented as Tables
|
|
|
To use a top-level command after its name has been rebound to a package-level command, you must first use the restart; command.
|
|
The following example intentionally employs an error message to illustrate which command level is used.
|
|
Note: The message refers to the top-level minimize command.
|
| (4) |
|
The simplex package contains a minimize command.
|
|
Note: The message refers to the package-level simplex[minimize] command.
|
|
Note: Packages implemented as tables overwrite any conflicting top-level commands when you invoke the package. You cannot access the top-level command by using the :- syntax.
|
|
To use the top-level minimize command, first invoke the restart command.
|
|
Note: The message once again refers to the top-level minimize command.
|
|
|
|
|
|
|