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
Packages Implemented as Modules
Packages Implemented as Tables
Use the type command to determine if a package is implemented as a module or as a table.
Once you have determined how the package has been implemented, follow the instructions in one of the following sections.
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.
Error, invalid input: diff expects 2 or more arguments, but received 0
Note: The message refers to the top-level diff command.
Now invoke the VectorCalculus package.
The VectorCalculus package contains a diff command. For differences between the two commands, see diff and VectorCalculus:-diff.
Enter the diff(); command again.
Error, invalid input: VectorCalculus:-diff uses a 1st argument, f, which is missing
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.
To use a top-level command after its name has been rebound to a package-level command, you must first use the restart; command.
Error, invalid input: minimize uses a 1st argument, exprFP (of type algebraic), which is missing
Note: The message refers to the top-level minimize command.
The simplex package contains a minimize command.
Error, invalid input: minimize uses a 1st argument, obj, which is missing
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.
Download Help Document