A tua tarefa é traduzir sequências de ARN em proteínas.
As cadeias de ARN são constituídas por sequências de três nucleótidos chamadas codões. Cada codão traduz-se num aminoácido. Quando se unem, esses aminoácidos formam uma proteína.
No mundo real existem 64 codões, que por sua vez correspondem a 20 aminoácidos. No entanto, neste exercício só vais usar alguns dos 64 possíveis. Estão listados a seguir:
| Codão | Aminoácido |
|---|---|
| AUG | Methionine |
| UUU, UUC | Phenylalanine |
| UUA, UUG | Leucine |
| UCU, UCC, UCA, UCG | Serine |
| UAU, UAC | Tyrosine |
| UGU, UGC | Cysteine |
| UGG | Tryptophan |
| UAA, UAG, UGA | STOP |
Por exemplo, a string de ARN “AUGUUUUCU” tem três codões: “AUG”, “UUU” e “UCU”. Estes correspondem a Methionine, Phenylalanine e Serine.
Repara que, na tabela acima, há três codões “STOP”. Se encontrares algum destes codões, ignora o resto da sequência: a proteína está completa.
Por exemplo, “AUGUUUUCUUAAAUG” contém um codão STOP (“UAA”). Assim que chegamos a esse ponto, deixamos de processar. Por isso, só consideramos a parte anterior a ele (ou seja, “AUGUUUUCU”), e não os codões que vêm depois (ou seja, “AUG”).
Sabe mais sobre tradução de proteínas na Wikipédia.
Devolve as proteínas como uma lista de símbolos, por exemplo '(methionine phenylalanine serine).
Inscreve-te no Exercism para aprenderes e dominares Scheme com 53 exercícios, e mentoria humana real, tudo grátis.
Explora 11 formas diferentes de resolver este exercício, incluindo abordagens imperativas, ideias funcionais como a correspondência de padrões, a recursão e as funções de ordem superior, e ainda algum código de baixo nível em C++ e Assembly.