Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
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 examining the Monastery: (7)
As of 2014-09-20 11:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (158 votes), past polls