Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
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);
For example,
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
Packages Implemented as Tables
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.
diff( );
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.
with(VectorCalculus);
The VectorCalculus package contains a diff command. For differences between the two commands, see diff and VectorCalculus[diff].
Enter the diff(); command again.
diff();
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.
:-diff();
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.
minimize();
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.
with(simplex);
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.
:-minimize();
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.
restart;
Note: The message once again refers to the top-level minimize command.
See Also
protect, Using Packages, with
Download Help Document