пятница, 4 декабря 2015 г.

Операции над множествами в perl

use strict;
use warnings;
no warnings 'experimental';
$\="\n";

# Наши подопытные множества, представленные в виде массивов.
my @A = (1,1,1,8,8,9,2);
my @B = (2,8,8,8,2,3);
my @C = (4,8,8,8,2,3);

my @D;

# 1. Объединение
@D = keys { map { $_ => undef } @A, @B, @C };
print "Объединение: @D";

# 2. Пересечение
@D = keys { map { $_ => undef } grep { $_ ~~ @B and $_ ~~ @C } @A };
print "Пересечение: @D";

# 3. Разность
@D = keys { map { $_ => undef } grep { not $_ ~~ @B and not $_ ~~ @C } @A };
print "Разность: @D";

1 комментарий: