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

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.

> 

with⁡LinkedList

New,Prepend

(1)
> 

l≔LinkedList:-New⁡x

l≔x

(2)
> 

l≔LinkedList:-Prepend⁡l,y

l≔y,x

(3)
> 

l≔LinkedList:-Prepend⁡l,z

l≔z,y,x

(4)

See Also

module

ModuleApply

ModuleDeconstruct

print

procedure