The command has special evaluation rules, and its first argument is not evaluated before the command has the opportunity to examine it. This is an important mechanism, and is central to how can accept, for example, a plotting command containing unassigned parameters.
In the following example, the standalone call to fails to produce a meaningful plot since the parameter has no assigned numeric value. As expected, an empty plot is produced, along with a warning about the presence of the unassigned name
The command accommodates this by not evaluating the explored command until it has numeric values for .
|
|
|
|
|
|
|
|
|
|
|
|
In versions previous to Maple 2016, all exploration parameters had to be explicitly given in in order for the exploration to work as expected. That is, if you had assigned to in the preceding example and then tried to explore , you would have received unintended results or a warning about the unexpected presence of the name . Therefore, in order to explore an expression that depended on a previously assigned name, it was necessary to use a more involved process, such as using a custom procedure that accepted as its parameter and would resolve during its execution.
|
|
|
|
|
|
|
|
|
|
|
|
(Note that this embedded exploration will not continue to work after a restart, unless is also reassigned with the intended procedure and is also assigned with its intended value.)
In Maple 2016 the name is resolved to its assigned value by , while the plotting command is still usefully left evaluated until parameter name gets its numeric values. This eliminates the need for a custom procedure. Also note that the following exploration will continue to operate as intended after a restart.
|
|
|
|
|
|
|
|
|
|
|
|
Names are resolved, recursively, to algebraic expressions involving other names. However, resolution of a name is not done if the value of the name is a Matrix/Vector/Array with hardware datatype or something of type last_name_eval, such as a procedure. Hence in the previous example the assigned name is not resolved and replaced, since its value is a procedure.