Иногда в праздничном веселье, как нечто далекое, мелькают мысли: кто я, что я делал, perl какой-то...
Создание списка
sub list($;$) {
my ($h, $t) = @_;
return sub {
return $h, $t;
}
}
my $x1 = list(1);
my $x2 = list(2, $x1);
my $x3 = list(3, $x2);
Печать списка
sub print_list($);
sub print_list($) {
my ($list) = @_;
my ($h, $t) = $list->();
print_list($t) if $t;
print "$h ";
}
print_list $x3;
print "\n";
map
sub _Map {
my ($sub, $list) = @_;
my ($h, $t) = $list->();
my $r = $t ? _Map($sub, $t) : undef;
list($sub->($h), $r);
}
sub Map(&;$) { &_Map }
print_list Map { $_[0]**$_[0] } $x3;
print "\n";