Name: Anonymous 2008-04-03 4:42
Show us some Perl magic, /prog/!
#!/usr/bin/perl
use warnings;
use strict;
use integer;
@ARGV == 2 or die "Usage: $0 INTEGER INTEGER\n";
sub {
my $r = shift;
my $a = 0 + shift;
my $b = 0 + shift;
@_ = (
sub {
my $f = shift;
@_ = (
sub {
my $f = shift;
@_ = (
sub {
my $f = shift;
@_ = (
sub {
my $n = shift;
print "$n\n";
@_ = 0;
goto &$r;
},
$b
);
goto &$f;
},
$a
);
goto &$f;
},
sub {
my $r = shift;
my $f = shift;
@_ = sub {
my $r = shift;
my $x = shift;
@_ = sub {
my $r = shift;
my $y = shift;
# print "> $x + $y\n";
if ($x && $y) {
@_ = (
sub {
my $f = shift;
@_ = ($r, ($x & $y) << 1);
goto &$f;
},
$x ^ $y
);
goto &$f;
}
@_ = $x ^ $y;
goto &$r;
};
goto &$r;
};
goto &$r;
}
);
goto &$f;
},
sub {
my $r = shift;
my $y = shift;
@_ = sub {
my $r = shift;
my $f = shift;
@_ = sub {
my $r = shift;
my $x = shift;
@_ = (
sub {
my $f = shift;
@_ = ($r, $x);
goto &$f;
},
sub {
my $r = shift;
my $x = shift;
@_ = (
sub {
my $g = shift;
@_ = (
sub {
my $f = shift;
@_ = ($r, $x);
goto &$f;
},
$f
);
goto &$g;
},
$y
);
goto &$y;
}
);
goto &$f;
};
goto &$r;
};
goto &$r;
}
);
goto & {
sub {
my $r = shift;
my $f = shift;
@_ = ($r, $f);
goto &$f;
}
};
}->(sub { exit $_[0] }, @ARGV)