Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Perl magic!

Name: Anonymous 2008-04-03 4:42

Show us some Perl magic, /prog/!

Name: Simon Peyote Joints 2008-04-03 7:53

#!/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)


Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List