AddType - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

Online Help

All Products    Maple    MapleSim


TypeTools

  

AddType

  

extend type system with user-defined type

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

AddType(typename, handler)

Parameters

typename

-

symbol; name of the type

handler

-

procedure or structured type

Description

• 

A new type typename is installed in the type system.

• 

The handler argument is either a procedure or a structured type describing the new type.

• 

If handler is a procedure, then a type call of the form typeexpr,typename results in a call to handlerexpr. Additional arguments can be passed to handler from a type call of the form typeexpr,typenamearg1,arg2,..., which results in the call handlerexpr,arg1,arg2,.... The handler argument, if it is a procedure, must return either true or false; no other return value is acceptable. It must also be prepared to handle any argument sequence that is passed to it.

• 

If the handler argument is a structured type, then the type test is defined by the structured type interpreter as though the structured type were used directly in a call to type.

• 

The AddType command returns NULL.

Examples

TypeToolsAddTypetff,identicalFAIL,identicalfalse,identicaltrue

typeFAIL,tff

true

(1)

typetrue,false,listtff

true

(2)

TypeToolsAddTypeinteger7,tevalbt::integerandiremt,7=0

type4,integer7

false

(3)

type28,integer7

true

(4)

TypeTools[AddType]( pair, proc( expr, elementtype := anything )
    type( expr, [ elementtype, elementtype ] )
end proc ):

type2,x,pair

true

(5)

type2,x,pairinteger

false

(6)

type2,3,pairinteger

true

(7)

See Also

type

type[structured]

TypeTools

TypeTools[GetType]

TypeTools[RemoveType]