Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

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

by tilly (Archbishop)
on Apr 19, 2001 at 03:52 UTC ( #73698=note: print w/ replies, xml ) Need Help??

in reply to Re: Mixing up da Arrays (Golf) (Russ=53)
in thread Mixing up da Arrays (Golf)

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]:(),@_}$_,@_ }
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...

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

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

sub Mix { map{splice@$_,0,1}map@_,map@$_,@_=map[@$_],@_ }
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.

Comment on Re (tilly) 2: Mixing up da Arrays (Golf) (Russ=53)
Select or Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2015-11-29 10:16 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (750 votes), past polls