Rima de las vocales: manzanas y plátanos
Hay una canción tradicional para niños que repite el mismo texto una y otra vez, solo que cada vocal se reemplaza con una vocal aleatoria, pero constante a través de la estrofa actual.
Desafío
El objetivo es proponer el código más corto que realice dicha transformación en un texto de entrada.
Reglas
- Debes imprimir la rima tantas veces como haya vocales distintas.
- Cada impresión debe separarse con un salto de línea ( se acepta una combinación de plataforma específica de
\ny\r). - Para la iteración
i, reemplace cada vocal con laith vocal distinta en el texto original. - El texto de entrada es una secuencia de caracteres ASCII imprimibles (rango
[32, 126]. - La entrada no contendrá saltos de línea incrustados.
- Solo los caracteres vocales deben verse afectados, otros deben ser emitidos exactamente como entrada.
- Solo los caracteres de las vocales cuentan: las vocales nasales, aunque suenen como vocales (como en francés "Tintín" ), no deben manejarse como una sola vocal.
- El caso es importante para la salida, pero es posicional (la sustitución de una vocal en mayúscula se realiza con la vocal de reemplazo en mayúscula)
- Las vocales en mayúsculas no son distintas de su contraparte en minúsculas (es decir,
a<=>A) - Las vocales consecutivas siempre se consideran por separado (es decir,
Boatproduce ambosBootyBaat) - Dado que la letra
yrepresenta una vocal o un sonido de consonante (como estamos hablando en inglés), se permite manejarla como vocal o consonante, sin embargo, las respuestas deben indicar explícitamente si se manejanycomo vocal o no.
Ejemplos:
Hola Mundo
Hello world!
da:
Helle werld!
Hollo world!
Extracto del texto original en francés (traducido), ymanejado como vocal:
An elephant that was rambling all gently in the woods...
da:
An alaphant that was ramblang all gantla an tha waads...
En elephent thet wes rembleng ell gentle en the weeds...
In iliphint thit wis rimbling ill gintli in thi wiids...
Yn ylyphynt thyt wys rymblyng yll gyntly yn thy wyyds...
On olophont thot wos romblong oll gontlo on tho woods...
Tenga en cuenta el comportamiento de la vocal mayúscula principal: el caso se mantiene en su índice (reglas 8 y 9).
Ejemplo sin vocales
Entrada que no contiene ninguna vocal, como:
lgn@hst:~$ rm -rf ./* ~ /
no debe producir salida o un solo salto de línea.
Entrada de vocal simple
La entrada que contiene una sola vocal se emite como está.
Dad sat at a car and saw a fat bat.
da:
Dad sat at a car and saw a fat bat.
Este es el código de golf , ¡por lo que gana menos código bytecount (nada más que la eterna gloria PPCG)!

Ruby , 78 bytes
Pruébalo en línea!
Un enfoque rápido e ingenuo. Y no se considera una vocal.
fuente
bash, 96 bytes
Dos soluciones de igual longitud:
Pruébalo en línea!
Toma la entrada como un argumento de línea de comando y las salidas a STDOUT.
fuente
05AB1E (legado) , 19 bytes
(Indirectamente) guardó un byte gracias a Kevin (imprimir directamente dentro del bucle en lugar de unirse, solo funciona en la versión heredada).
Pruébalo en línea!
Usando la reescritura de Elixir, 20 bytes
Pruébalo en línea! (sin
y) | Pruébalo en línea! (cony,žMsiendo reemplazado poržO- lo mismo aplica para la versión heredada)Cómo funciona
fuente
ytambién debe usar en6lugar de5, por cierto.yversión -vowel, copié accidentalmente el enlace TIO incorrecto cuando respondí: | ...icódigo. Su respuesta falla para entradas sin vocales. Se espera una salida vacía, pero en realidad imprime la entrada en sí ... :(Japt v2.0a0
-R,2422 bytesSe trata
ycomo una vocal. Cambie ambas ocurrencias de\yto\vpara tratarlo como una consonante.Intentalo
Explicación
fuente
Gelatina ,
23 20 1817 bytes-2 Gracias a Erik the Outgolfer
Para tratar
ycomo vocal, reemplace ambascs conys.Pruébalo en línea!
¿Cómo?
fuente
ż/en un parZ, dos díadas seguidas donde el izquierdo no está emparejado en una mónada tienen el argumento implícito)Z> _ <), no estoy seguro de lo que estaba pasando con mi sesión de TIO, pero eliminar el redundanteðno funcionaba; reinicio fijo.x€→xtambién, pero tú me ninja. : PRojo , 229 bytes
Tomar
ypor una no vocalPruébalo en línea!
Ligeramente más legible:
fuente
R ,
138, 129 bytesPruébalo en línea!
yno se considera una vocalfuente
Python,
129119112 bytesPruébalo en línea!
-7 bytes gracias a @ Mr.Xcoder
fuente
JavaScript (Node.js) , 99 bytes
Pruébalo en línea!
Comentado
fuente
Java 10,
196188 bytes-8 bytes gracias a @ joH1 .
Sin
ycomo vocal para guardar bytes.Pruébalo en línea.
Explicación:
fuente
ven el buclePython 2 , 112 bytes
Pruébalo en línea!
Se trata
ycomo una consonante.fuente
Perl 6 , 64 bytes
Pruébalo en línea!
fuente
Java (OpenJDK 8) , 184 bytes
y es una vocal
Pruébalo en línea!
fuente