ModulePrint - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

# Online Help

###### All Products    Maple    MapleSim

ModulePrint

function to apply prior to pretty-printing a module

 Calling Sequence module() export ModulePrint, ...; ... end module;

Description

 • If a module has an export or local named ModulePrint, the result of the ModulePrint() command is displayed instead of the module when a command in that module is executed.
 • ModulePrint is analogous to the user-defined function formatting facility described in ?print, except no arguments are passed to the formatting function.

Examples

Here we create a linked list package.  The package provides the ability to create a new linked list, and prepend to an existing linked list via the New and Prepend exports.  Creating a new linked list returns a module node "object".

 > LinkedList := module()     option package;     export New, Prepend;     local DisplayNode;     New := proc( data )     module()         export Val, Next;             local ModulePrint;         Val := data;         Next := 0;             ModulePrint := proc()                DisplayNode(thismodule);             end proc;     end module;     end proc;     Prepend := proc( llist, val )         local node;         node := New(val);         node:-Next := eval(llist);         return node;     end proc;     DisplayNode := proc( node )     if node = 0 then         return NULL;     else         return node:-Val, DisplayNode(node:-Next);     end if;     end proc; end module:

Now load the package and create a linked list.  Note how the node modules get displayed.  The head node is formatted by the ModulePrint command which calls DisplayNode to output the entire linked list.

 > $\mathrm{with}\left(\mathrm{LinkedList}\right)$
 $\left[{\mathrm{New}}{,}{\mathrm{Prepend}}\right]$ (1)
 > $l≔\mathrm{LinkedList}:-\mathrm{New}\left(x\right)$
 ${l}{≔}{x}$ (2)
 > $l≔\mathrm{LinkedList}:-\mathrm{Prepend}\left(l,y\right)$
 ${l}{≔}{y}{,}{x}$ (3)
 > $l≔\mathrm{LinkedList}:-\mathrm{Prepend}\left(l,z\right)$
 ${l}{≔}{z}{,}{y}{,}{x}$ (4)

 See Also