Set::Scalar::Base - base class for Set::Scalar |
Set::Scalar::Base - base class for Set::Scalar
use Set::Scalar; $s = Set::Scalar->new; $s->insert('a', 'b'); $s->delete('b'); $t = Set::Scalar->new('x', 'y', $z);
$s = Set::Scalar->new; $s = Set::Scalar->new(@members);
$t = $s->clone;
$s->insert(@members); $s->delete(@members); $s->invert(@members); # insert if hasn't, delete if has
print $s, "\n";
The display format of a set is the members of the set separated by spaces and enclosed in parentheses ().
You can even display recursive sets.
@members = $s->members; @elements = $s->elements; # alias for members
$size = $s->size;
if ($s->member($member)) { ...
$s->element # alias for member $s->has # alias for member $s->contains # alias for member
$s->is_null $s->is_universal
$s->null # the null set $s->universe # the universe of the set
$u = $s->union($t); $i = $s->intersection($t); $d = $s->difference($t); $e = $s->symmetric_difference($t); $v = $s->unique($t); $c = $s->complement;
These methods have operator overloads:
$u = $s + $t; # union $i = $s * $t; # intersection $d = $s - $t; # difference $e = $s % $t; # symmetric_difference $v = $s / $t; # unique $c = -$s; # complement
$eq = $s->is_equal($t); $dj = $s->is_disjoint($t); $pi = $s->is_properly_intersecting($t); $ps = $s->is_proper_subset($t); $pS = $s->is_proper_superset($t); $is = $s->is_subset($t); $iS = $s->is_superset($t);
$cmp = $s->compare($t);
The compare
method returns a string from the following list:
``equal'', ``disjoint'', ``proper subset'', ``proper superset'', ``proper
intersect'', and in future, ``disjoint universes''.
These methods have operator overloads:
$eq = $s == $t; # is_equal $dj = $s != $t; # is_disjoint # No operator overload for is_properly_intersecting. $ps = $s < $t; # is_proper_subset $pS = $s > $t; # is_proper_superset $is = $s <= $t; # is_subset $iS = $s >= $t; # is_superset
$cmp = $s <=> $t;
Jarkko Hietaniemi <jhi@iki.fi>
Set::Scalar::Base - base class for Set::Scalar |