function to apply prior to pretty-printing a module - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Programming : Modules : Module Exports : ModulePrint

asModulePrint - function to apply prior to pretty-printing a module

Calling Sequence

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



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.


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 )
        export Val, Next;
            local ModulePrint;

        Val := data;
        Next := 0;

            ModulePrint := proc()
            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;
        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.













See Also

module, ModuleApply, ModuleDeconstruct, print, procedure

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam