in reply to Re^4: Challenge: prefix($x, $y) . suffix($x, $z) eq $x
in thread Challenge: prefix($x, $y) . suffix($x, $z) eq $x

Limbic~Region,

well, it was never meant to scale ;-)
I've updated my post. Running it with 'ivanova' as argument now yields

real 0m0.067s user 0m0.051s sys 0m0.003s

on average.

--shmem

Replies are listed 'Best First'.
Re^6: Challenge: prefix($x, $y) . suffix($x, $z) eq $x
by Limbic~Region (Chancellor) on Apr 23, 2009 at 00:23 UTC
    shmem,
    Much better - but it helped me find another bug in your code.
    $perl shmem.pl hello found: prefix(haughtiness humanoid ... hello

    prefix(hello, hello) ne 'h' for a number of reasons. First, they have more in common then h. Second, it would consume the entire word - both of which are against the rules.

    Cheers - L~R

      No, Sir.

      It is not prefix(hello, hello), but prefix(haughtiness, hello) etc. haughtiness, humanoid and hello have the prefix 'h' in common, and the 'ello' is provided by the words output in the suffix section. Run the prefix() sub passing it (qw(hello hello)) and you will get no return value.

      So (humanoid hello, haughtiness, cello) is a valid tuple. The presence of 'hello' in the prefix section is an artifact of the implementation... er, bug ;-)

      --shmem

        shmem,
        Well, the title does say prefix($x, $y) . prefix($x, $z) eq $x. In this case, $x should be 'hello'. After your explanation and examining the code that I see you are listing all words that have the same prefix which is effectively the right thing - just not displayed as expected.

        Cheers - L~R