Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Just Another Godel, Escher, Bach hacker

by FoxtrotUniform (Prior)
on Jun 25, 2004 at 19:31 UTC ( #369727=obfuscated: print w/replies, xml ) Need Help??

What this obfu lacks in artistic merit (that's supposed to be a Möbius strip), I think it makes up in technique and name. I got the idea from a Haskell assignment (egads! Posting homework to the monastery?), and I think the main concept is mildly clever. I'd love to talk about it, but I don't want to spoil the surprise!

#! /usr/bin/perl -w use strict; sub godel{my ($f,$a,$l)=@_;return $a unless @$l;my$x=shift @$l;&$f( $x,&godel($f,$a,$l));}my @M=split '', "Just another ";my @I =split '' +, "Perl hacker,"; my @U =reverse @M; su +b escher{my ($l,$m) =@_;sub{$l= pop @ +U if @U;$l.&$m();} } unshift@U, split ' +' ,"pool egnarts";my$bach=&godel(\&escher,&godel(\&escher,sub{return"\n" +} ,\@I),\@M);print &$bach(); ### Inspired by Douglas Hofstadter's _GEB_

Tested on Perl 5.6.1, Linux 2.4.18.

--
F o x t r o t U n i f o r m
Found a typo in this node? /msg me
% man 3 strfry

Replies are listed 'Best First'.
Re: Just Another Godel, Escher, Bach hacker
by diotalevi (Canon) on Jun 25, 2004 at 20:10 UTC

    Nice. Reading this was like comfort food.

    There's a spoiler in the readmore.

      Nice summary! (readmore is spoily)

        So if perl were Haskell, what else would you have here?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: obfuscated [id://369727]
Approved by injunjoel
Front-paged by tye
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2023-12-07 22:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?











    Results (33 votes). Check out past polls.

    Notices?