Os teus pais desafiaram-te a ti e ao teu irmão para um jogo de basquetebol dois contra dois. Convencidos de que vão ganhar, deixam-te marcar os primeiros pontos, mas depois começam a dominar o jogo. A precisar de um pequeno empurrão, começas a falar em Pig Latin, uma língua inventada de crianças que é difícil de entender para quem já não é criança. Assim vais ter vantagem para venceres os teus pais!
A tua tarefa é traduzir texto de inglês para Pig Latin. A tradução é definida por quatro regras, que analisam o padrão de vogais e consoantes no início de uma palavra. Estas regras analisam a utilização de vogais e consoantes em cada palavra:
a, e, i, o e u
Se uma palavra começa com uma vogal, ou começa com "xr" ou "yt", acrescenta um som "ay" ao fim da palavra.
Por exemplo:
"apple" -> "appleay" (começa com vogal)"xray" -> "xrayay" (começa com "xr")"yttria" -> "yttriaay" (começa com "yt")Se uma palavra começa com uma ou mais consoantes, move primeiro essas consoantes para o fim da palavra e, em seguida, acrescenta um som "ay" ao fim da palavra.
Por exemplo:
"pig" -> "igp" -> "igpay" (começa com uma única consoante)"chair" -> "airch" -> "airchay" (começa com várias consoantes)"thrush" -> "ushthr" -> "ushthray" (começa com várias consoantes)Se uma palavra começa com zero ou mais consoantes seguidas de "qu", move primeiro essas consoantes (se existirem) e a parte "qu" para o fim da palavra e, em seguida, acrescenta um som "ay" ao fim da palavra.
Por exemplo:
"quick" -> "ickqu" -> "ickquay" (começa com "qu", sem consoantes antes)"square" -> "aresqu" -> "aresquay" (começa com uma consoante seguida de "qu")Se uma palavra começa com uma ou mais consoantes seguidas de "y", move primeiro as consoantes que precedem o "y" para o fim da palavra e, em seguida, acrescenta um som "ay" ao fim da palavra.
Alguns exemplos:
"my" -> "ym" -> "ymay" (começa com uma única consoante seguida de "y")"rhythm" -> "ythmrh" -> "ythmrhay" (começa com várias consoantes seguidas de "y")Inscreve-te no Exercism para aprenderes e dominares Lua com 117 exercícios, e mentoria humana real, tudo grátis.
Damos uma vista de olhos à correspondência de padrões e às expressões regulares, bem como a uma boa solução em Prolog, e perguntamos: resolveste o exercício ou limitaste-te a fazer passar os testes?