in reply to Re: (Golf) RNA Genetic Code Translator
in thread (Golf) RNA Genetic Code Translator

Bending the spec a bit at 123 (regarding treatment of leftover base pairs):
sub f { $_=pop;y/ACUG/0123/;s|(.)(.)(.)|(map{ord>91?uc:(),uc} 'KnKttiIMRsRQhQppllrr.y.ssLfL.cWEdEaavvgg'=~/./g)[$1*16+$2*4+$3]|eg;$_ }
   MeowChow                                   
               s aamecha.s a..a\u$&owag.print

Replies are listed 'Best First'.
Re^3: (Golf) RNA Genetic Code Translator
by tadman (Prior) on Jul 09, 2001 at 22:03 UTC
    Stunning, to say the least, but what is more stunning is the amateurish oversight that I made myself when posting my entry. How could I have not used the range feature of tr? I feel silly, but at least I'm not alone:
    sub f { $_=pop;y/ACUG/0-3/;s|(.)(.)(.)|(map{ord>91?uc:(),uc} 'KnKttiIMRsRQhQppllrr.y.ssLfL.cWEdEaavvgg'=~/./g)[$1*16+$2*4+$3]|eg;$_ }
    I was looking at my entry, trying to save a few strokes, motivated by scain's Benchmarks posted below. It was immediately obvious how to save a few strokes, now that I'm awake and caffinated and all. Revised, mine ended up at 133, still a ways off of MeowChow at the new and improved 122 posted above:
    sub f{ $_=pop;y/UCAG/0-3/;s/(.)(.)(.)/substr "FFLLSSSSYY..CC.WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG", $1<<4|$2*4|$3,1/ge;s/\d//g;$_ }