Add - Maple Help

 add entry generator to EntryGenerators table for use within context menu module

 Calling Sequence EntryGenerators[Add](Name, Generator)

Parameters

 Name - string; index of generator in 'EntryGenerators' table Generator - list of lists or procedure that returns a list of lists; specifies the names that appear as subentries and the values returned when subentries are selected

Description

 • The EntryGenerators[Add] command adds an entry generator to the context menu module.  Entry generators can be used by entries to dynamically generate subentries to obtain extra information from the user.
 • The Generator parameter is a list of lists or a procedure that returns a list of lists.  If it is a procedure, then the selected object is passed to the procedure.
 The list of lists is structured as follows.  Each operand in the outer list is a list, containing a string (the name of the subentry) followed by a list containing information to return to the entry as %ARG1, %ARG2, ...
 For example, if Generator were [ ["Subentry 1", [1]], ["Subentry 2", [2]], ["Subentry 3", [3]] ] then "Subentry 1", "Subentry 2", and "Subentry 3" are displayed in the context menu.  If "Subentry 2" is selected, then 2 is returned as %ARG1 to the entry.
 • The Name parameter is the index of the generator in the 'EntryGenerators' table.

 Add an entry generator that allows the user to select a desired number of digits for approximation.
 > EntryGenerators[Add](     "NumDigits",     [ ["5",[5]], ["10",[10]], ["20",[20]], ["50",[50]], ["100",[100]] ] );
 Add an entry generator that allows the user to specify the direction and amount of rotation, for example, when rotating the elements of a list.
 > EntryGenerators[Add](     "Rotation",     [ ["2 to the left",[-2]], ["1 to the left",[-1]], ["1 to the right",[1]], ["2 to the right",[2]] ] );
 Add an entry generator that allows the user to select one of the variables that appears in the selected expression.  For example, this entry generator allows the user to select a variable with respect to which differentiation occurs or to specify the independent variable for a plot.
 > EntryGenerators[Add](     "Variables",     proc()         local i, vars;         try             vars := Queries[Run]("Variables");             [ seq( [ sprintf( "%a", op(i,vars) ), [ op(i,vars) ] ], i = 1 .. nops(vars) ) ];         catch:         end try;     end proc );
 Add an entry generator that allows the user to select an ordered pair of the variables that appear in the selected expression.
 > EntryGenerators[Add](     "Variables 2",     proc()         local i, vars, subentries;         vars := Queries[Run]("Variables");         subentries := combinat[choose](vars,2);         [ seq( [ sprintf( "%a, %a", op(op(i,subentries)) ), op(i,subentries) ], i = 1 .. nops(subentries) ) ];     end proc );