|
|
last edited 12 years ago by Bill Page |
1 | ||
Editor: Bill Page
Time: 2011/11/15 07:32:00 GMT-8 |
||
Note: new |
changed: - Gaby described how to obtain the type of a functor. A functor is an "unapplied" domain constructor. A domain constructor is an expression. So for example 'Complex Integer' is a domain constructor. 'Complex' is the functor. Example Complex \begin{axiom} )boot getConstructorSignature 'Complex --)boot getConstructorSignature('Complex).target )boot first getConstructorSignature('Complex) --)boot getConstructorSignature('Complex).source )boot first rest getConstructorSignature('Complex) \end{axiom}
Gaby described how to obtain the type of a functor. A functor is an "unapplied" domain constructor. A domain constructor is an expression. So for example Complex Integer
is a domain constructor. Complex
is the functor.
Example Complex
)boot getConstructorSignature 'Complex
(EVAL-WHEN (EVAL LOAD) (PROG () (RETURN (|getConstructorSignature| '|Complex|)))) Value = ((|Join| (|ComplexCategory| |#1|) (CATEGORY |package| (IF (|has| |#1| (|OpenMath|)) (ATTRIBUTE (|OpenMath|)) |noBranch|))) (|CommutativeRing|)) --)boot getConstructorSignature('Complex).target
)boot first getConstructorSignature('Complex)
(EVAL-WHEN (EVAL LOAD) (PROG () (RETURN (CAR (|getConstructorSignature| '|Complex|))))) Value = (|Join| (|ComplexCategory| |#1|) (CATEGORY |package| (IF (|has| |#1| (|OpenMath|)) (ATTRIBUTE (|OpenMath|)) |noBranch|))) --)boot getConstructorSignature('Complex).source
)boot first rest getConstructorSignature('Complex)
(EVAL-WHEN (EVAL LOAD) (PROG () (RETURN (CAR (CDR (|getConstructorSignature| '|Complex|)))))) Value = (|CommutativeRing|)