use v6;
package DNA::Utils;
my %complement_for = {
A => 'T',
C => 'G',
G => 'C',
T => 'A',
};
# Could add a restriction or coercion on $dna
# so that only valid DNA strings are allowed.
sub reverse_complement(Str $dna) is export {
return $dna.split('').reverse().map({ %complement_for{ $_.uc } }).join('');
}
This code actually compiles and runs =)