Pig Latin

Pig Latin

Media

Introducción

Tus padres os han desafiado a ti y a tu hermano o hermana a un partido de baloncesto dos contra dos. Seguros de que ganarán, os dejan anotar los primeros puntos, pero luego empiezan a hacerse con el control del partido. Como necesitáis un pequeño empujón, empezáis a hablar en Pig Latin, un lenguaje infantil inventado que a los que ya no son niños les cuesta entender. ¡Así tendréis la ventaja necesaria para imponeros a vuestros padres!

Instrucciones

Tu tarea consiste en traducir texto del inglés a Pig Latin. La traducción se define con cuatro reglas, que se fijan en el patrón de vocales y consonantes al principio de una palabra. Estas reglas atienden al uso de vocales y consonantes de cada palabra:

  • vocales: las letras a, e, i, o y u
  • consonantes: las otras 21 letras del alfabeto inglés

Regla 1

Si una palabra empieza por vocal, o empieza por "xr" o "yt", añade un sonido "ay" al final de la palabra.

Por ejemplo:

  • "apple" -> "appleay" (empieza por vocal)
  • "xray" -> "xrayay" (empieza por "xr")
  • "yttria" -> "yttriaay" (empieza por "yt")

Regla 2

Si una palabra empieza por una o más consonantes, mueve primero esas consonantes al final de la palabra y después añade un sonido "ay" al final de la palabra.

Por ejemplo:

  • "pig" -> "igp" -> "igpay" (empieza por una sola consonante)
  • "chair" -> "airch" -> "airchay" (empieza por varias consonantes)
  • "thrush" -> "ushthr" -> "ushthray" (empieza por varias consonantes)

Regla 3

Si una palabra empieza por cero o más consonantes seguidas de "qu", mueve primero esas consonantes (si las hay) y la parte "qu" al final de la palabra, y después añade un sonido "ay" al final de la palabra.

Por ejemplo:

  • "quick" -> "ickqu" -> "ickquay" (empieza por "qu", sin consonantes delante)
  • "square" -> "aresqu" -> "aresquay" (empieza por una consonante seguida de "qu")

Regla 4

Si una palabra empieza por una o más consonantes seguidas de "y", mueve primero las consonantes que preceden a la "y" al final de la palabra y después añade un sonido "ay" al final de la palabra.

Algunos ejemplos:

  • "my" -> "ym" -> "ymay" (empieza por una sola consonante seguida de "y")
  • "rhythm" -> "ythmrh" -> "ythmrhay" (empieza por varias consonantes seguidas de "y")
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Racket Exercism

¿Listo para empezar Pig Latin?

Regístrate en Exercism para aprender y dominar Racket con 84 ejercicios y mentoría humana real, todo gratis.

¡Análisis en profundidad de Pig Latin!

Echamos un vistazo a la coincidencia de patrones y a las expresiones regulares, además de a una bonita solución en Prolog, y nos preguntamos: ¿has resuelto el ejercicio o solo has hecho que pasen los tests?