Close
Close window
ModulePrint - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.
Maplesoft logo
Maplesoft logo

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.

>

withLinkedList

New,Prepend

(1)
>

lLinkedList:-Newx

lx

(2)
>

lLinkedList:-Prependl,y

ly,x

(3)
>

lLinkedList:-Prependl,z

lz,y,x

(4)


Download Help Document

AltStyle によって変換されたページ (->オリジナル) /