TypeTools - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Programming : Data Types : Type Checking : TypeTools : TypeTools/AddType

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.

Examples

TypeTools[AddType]tff,'identicaltrue,identicalfalse,identicalFAIL'

typeFAIL,'tff'

true

(1)

typetrue,false,'listtff'

true

(2)

TypeTools[AddType]integer7,t→evalbt::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]

 


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