Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Mixing up da Arrays (Golf) (Russ=53)

by Russ (Deacon)
on Apr 19, 2001 at 00:22 UTC ( #73649=note: print w/ replies, xml ) Need Help??


in reply to Mixing up da Arrays (Golf)

I can get 53 for the safe version (see the post by tilly for details), though with (at least) one terrible inefficiency:

sub Mix{ map{my$i=$_;map{$$_[$i]}grep{@$_>$i}@_}0..map{@$_}@_ }

Russ
Brainbench 'Most Valuable Professional' for Perl


Comment on Re: Mixing up da Arrays (Golf) (Russ=53)
Download Code
Re (tilly) 2: Mixing up da Arrays (Golf) (Russ=53)
by tilly (Archbishop) on Apr 19, 2001 at 03:52 UTC
    What a clever inefficiency! I was trying to find a way to generate a list of numbers that was at least as big as each list, but failed...

    With ?: I can save some, and shaving with map$foo,@list tricks I can save some more. This brings the safe version down to 48 characters.

    sub Mix { map{my$i=$_;map$i<@$_?$$_[$i]:(),@_}0..map@$_,@_ }
    That matches what was done unsafely before. But unfortunately for sanity's sake observe the following 33 character entry:
    sub Mix { map{splice@$_,0,1}map@_,map@$_,@_ }
    I have written saner code...

    UPDATE
    Saved 3 chars on the unsafe example, there is no need for a nice numerical list when I will be just converting the elements...

    UPDATE 2
    Sheesh. And the safe example can be modified to the rather bizarre 45 character beast:

    sub Mix { map{splice@$_,0,1}map@_,map@$_,@_=map[@$_],@_ }
    UPDATE 3
    I give up on shrinking this. However I have 4 variations on the key 33 char sub. In terms of efficiency of execution, the following wins:
    sub Mix { map{map{splice@$_,0,1}(@_)x@$_}@_ }
    So that is (barring the unexpected) my final answer.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://73649]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2015-07-04 22:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls