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

Description

Examples

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)

See Also

module

ModuleApply

ModuleDeconstruct

print

procedure