http://www.perlmonks.org?node_id=77817


in reply to (Golf) Per Mutations

You're too good for me !
My best one is 85 (between curly brackets).
sub t{!@_&&print@r,"\n";for my $i(0..$#_){push@r,$_[$i];t(@_[0..$i-1], +@_[$i+1..$#_]);pop@r}}

"Only Bad Coders Badly Code In Perl" (OBC2IP)

Replies are listed 'Best First'.
Re: Re: (Golf) Per Mutations
by MeowChow (Vicar) on May 04, 2001 at 02:25 UTC
    Perhaps you'll be able to knock off a few more chars, since the sub isn't supposed to print anything - it only needs to return the data structure specified in the problem description.

    A brief reduction of this sub gives 79 chars though:

    sub t{!@_&&print@r,"\n";for my$i(1..@_){push@r,$_[$i-1];t(@_[0..$i-2,$ +i..$#_]);pop@r}}
       MeowChow                                   
                   s aamecha.s a..a\u$&owag.print
      Well done !
      But you should know that I leave a space between my and $i to get rid of a:
      'Missing $ on loop variable' error message with my Perl(5.0 patchlevel 5 subversion 3 on linux)

      "Only Bad Coders Badly Code In Perl" (OBC2IP)