Regular |
Detailed Description
The concept Regular is the basic concept which allows for equational reasoning about code. Each of the sub-concepts which it refines are interconnected by the axioms which cannot be expressed until combined here.
- Refinement Of:
- Notation:
- Valid Expressions:
- All expressions that match the above concepts are valid.
- Expression Semantics:
- Given type
T
which models Regular and an actionzap()
which always modifies it's parameter:T a = b; assert(a == b);
copies are equalT a; a = b;
is equivalent toT a(b);
relate copy and assignmentT a = c; T b = c; a = d; assert(b==c);
copies are disjointT a = c; T b = c; zap(a); assert(b==c && a!=b);
copies don't intersect
- Type(s) Modeling this Concept:
- int
- adobe::name_t
- adobe::copy_on_write
- Notes:
- See Also:
- Alex Stepanov's paper on the concept of regular types.
- Movable.