New Features in Maple 17: Ease of Use

Next Feature

Maplesoft has always been a pioneer in math software usability, and continually strives to ensure that new and occasional users are immediately productive while experienced users have the tools and flexibility they need to work efficiently. Usability enhancements in Maple 17 include:

Autocomplete in 2-D Math

When typing command and function names in 2-D Math, Maple now offers quick completions for items that are unambiguous. When such an item is available, it will appear as a yellow tooltip-style popup. Pressing the Tab or Return/Enter key will insert the suggested item.

Enhanced Search and Replace

Search and replace functionality now extends into 2-D Math expressions for simple names. For example, searching for 'x' will find the x in the first term of the expression `+`(`*`(`^`(x, 2)), `-`(y), 10).

Improved Subscript Handling

There are two types of subscripts in Maple.

  • Literal subscripts are a part of the variable name itself, and are not interpreted as an index of any kind.
  • Index subscripts are a direct index reference to an element stored in datastructure such as an array or vector.

Maple 17 features improvements to how subscripts are entered in both of these cases, and well as removes the need to enter a backslash in order to explicitly create underscore characters in variable names.

  • To create a literal subscript, type the base name followed by two underscores, followed by the subscript.  For example, 'a', '_', '_', 'b'.
> a__b
  • To create an indexed subscript, use the key sequence Ctrl-Shift-underscore (Command-Shift-underscore on Mac OS X) or surround the subscript with square brackets.
> a[b]
  • To enter an underscore, simply type the underscore key on your keyboard.
> a_b

Reclaiming the Use of the Names 'I', 'D', 'gamma', and More

You can now reclaim variables such as 'D', 'I' or 'gamma' for use in your calculations.

> local D := 5:

> D+D;


By declaring 'D' local at the top-level, a new local variable has been created with the name 'D' and made the default in the current name-space in a way similar to that of using the short-name to access package exports after using the "with" command to load a package. The global version of this name, the differential operator, is still available by prefixing the name with colon-dash.

> :-D(f)(0);


> convert(:-D(f)(0), 'diff');

eval(diff(f(t1), t1), {t1 = 0})

Any variable can be declared local, even ones that are not protected.

> local x, y, min:

> x := 4.4; y := 320.1; min := 0.001;


The global versions remain available via :-.

> :-x, :-y, :-min(x,y);

:-x, :-y, 4.4

The imaginary unit, I, also obeys a local declaration even though it is a special alias governed by interface(imaginaryunit). In this case the name of the global version becomes _I instead of :-I.

> local I:

> I := <1, 0, 0; 0, 1, 0; 0, 0, 1>;

> I^2;

Matrix(%id = 18446744078088537142)

> _I^2;