# Re: Set Theory (Was: Do junctions support determining interesections of lists)

```2006/4/4, Larry Wall <[EMAIL PROTECTED]>:
> But this is all based on enumerated sets.  Oddly missing are any
> Sets that are defined by rule.  That would presumably take closures,
> though I suppose one can attempt to enumerate the closures that have
> to hold true and autothread through the calls to those closures...
>
> Can Russel be far behind?  :-)```
```
This is in ext/Recurrence:

use Recurrence;

# all integer numbers
\$universe = Recurrence.new(
closure_next =>     sub { \$_ + 1 },
closure_previous => sub { \$_ - 1 },
:is_universe(1) );

# all even integers
\$even_numbers = Recurrence.new(
closure_next =>     sub { 2 * int( \$_ / 2 ) + 2     },
closure_previous => sub { 2 * int( ( \$_ - 1 ) / 2 ) },
universe => \$universe );

# all odd integers
\$odd_numbers = \$even_numbers.complement;

# all non-zero integers
\$non_zero = Recurrence.new(
closure_next =>        sub (\$x) { \$x == -1 ??  1 !! \$x + 1 },
closure_previous =>    sub (\$x) { \$x ==  1 ?? -1 !! \$x - 1 },
complement_next =>     sub (\$x) { \$x < 0   ??  0 !!    Inf },
complement_previous => sub (\$x) { \$x > 0   ??  0 !!   -Inf },
universe => \$universe );

- Flavio S. Glock
```