Trap

PatternSet

(*

(2)������������������� Pattern[Set][patSet]

 

�returns True if patSet is a PatternSet and False otherwise.

 

A PatternSet presumes its argument is the object of comparison and always returns True or False.

 

Here are the Keywords which anticipate an argument:

����������� {Function[�], Set[�], Pattern[�], True, Type[_,_],

{True[�PatternSet�], Not[�PatternSet�], And[�PatternSet�], Or[�PatternSet�], Xor[�PatternSet�]}}.

 

Of these, all return True or False except Function[�].� The result leafs of the BranchExpression of Function[�] can be scanned to determine if they return True or False.� Function[�]s used to define a PatternSet must always branch to True or False.� This quality can be tested for�

How this scan is done, will determine exactly how the PatternSet quality is tested for�

*)

 

Name[typeSet,

����������� Or[����� Pattern[Type[Set]],

����������������������� Pattern[Not[Pattern[Type[Set]]]]

����������� ]

]

 

Name[typePattern,

����������� Or[����� Pattern[Type[Pattern]],

����������������������� Pattern[Not[Pattern[Type[Pattern]]]]

����������� ]

]

 

Name[typeLogicalPatternSet,

����������� Function[

����������������������� And[

����������������������������������� Set[True, Not, And, Or, Xor][Slot[0]],

����������������������������������� (PatternSet[Sequence])[Slot[Sequence]]

����������������������� ]

����������� ]

]

Name[typeLogicalPatternSet,

����������� Pattern[

����������������������� (Set[True, Not, And, Or, Xor])[PatternSet[Sequence]]

����������� ]

]

 

 

 

Name[PatternSet, Or[typeSet, typePattern, typeLogicalPatternSet]]

 

 

CurrentReckoner

(*

The CurrentReckoner is the Name assigned to the PatternSet of all recognized ElicitationForms.�

This is a �private� environmental name that is necessary to define Trap, Reckon, Noop or any algorithm which may change the recognized ElicitationForms.

*)

`Transit`

 

Trap[elicit, eval ] a.k.a. TrapElicitEval

 

Name[Trap[elicit_PatternSet, eval_Expression],

Sequence[

����������� Name[Trap[Return], False],

����������� Cast[{

����������������������� Name[CurrentReckoner, Or[elicit, CurrentReckoner]],

����������������������� Name[elicit, Sequence[Name[Trap[Return], True], Return[elicit]]]},

����������������������� Trap[eval]

����������� ]

]]

 

 

 

Trap[elicit, eval , exec] a.k.a. TrapElicitEvalExec

 

Name[Trap[elicit_PatternSet, eval_Expression , exec_Expression],

����������� Cast[{Name[]},

����������������������� Trap[elicit, eval]

����������� ]

]

 

Hosted by www.Geocities.ws

1