On Tue, Apr 09, 2002 at 05:41:22PM +0000, Jean-Pierre Vidal wrote:
> This is a fact. At the time, I dont understand why I could not see the output 
> words were in the input  :-(

At first I had a similar problem. I started writing a program to
recursively generate all anagrams. Then I re-read the rules and saw they
were in the input file. This lead to the following program:

#!/usr/bin/perl -ln
$w{$_}=1;

END{
    for(keys %w){
        split(//);
        $e{$_}=[sort grep {$w{$_}-->0} g(@_)];
    }

    for(sort {$#{$a} <=> $#{$b} || ${$a}[0] cmp ${$b}[0]} values %e){
        print @{$_} if $#{$_}>0;
    };
}

sub g{
    return @_ if (!$#_);
    my(@a,@q,$l);
    while($l=shift){
        push @a,map {$l.$_} g(@q,@_);
        push @q,$l;
    }
    return @a;
}

Which was rejected (which I can fully understand) because it 'didnt
finish'. I still think it is a correct solution, but it would be hard to
find a way to be even slower :)

CU,
    Sec (Hoped he could beat `/anick, but failed - maybe next time :-)
-- 
The most successful method of programming is to begin a program as
simply as possible, test it, and then add to the program until it
performs the required job."              -- PDP8 handbook, Pg 9-64

Reply via email to