Voyelles riment: pommes et bananes
Il y a une chanson traditionnelle pour enfants qui répète le même texte encore et encore, seulement chaque fois que chaque voyelle est remplacée par une voyelle aléatoire, mais constante dans la strophe actuelle.
Défi
L'objectif est de proposer le code le plus court qui effectue une telle transformation sur un texte d'entrée.
Règles
- Vous devez imprimer la rime autant de fois qu'il y a de voyelles distinctes.
- Chaque impression doit être séparée par un saut de ligne (combo
\n
et\r
est accepté). - Pour l'itération
i
, remplacez chaque voyelle par lei
voyelle distincte dans le texte original. - Le texte saisi est une séquence de caractères ASCII imprimables (plage
[32, 126]
. - L'entrée ne contiendra pas de sauts de ligne intégrés.
- Seuls les caractères des voyelles doivent être affectés, les autres doivent être sortis exactement comme entrée.
- Seuls les caractères des voyelles comptent: les voyelles nasales, bien qu'elles sonnent comme des voyelles (comme en français "Tintin" ), ne doivent pas être traitées comme une voyelle unique.
- Le cas est important pour la sortie, mais est positionnel (le remplacement d'une voyelle majuscule se fait par la voyelle de remplacement majuscule)
- Les voyelles majuscules ne sont pas distinctes de leur homologue minuscule (c'est
a
-à- dire <=>A
) - Les voyelles consécutives sont toujours considérées séparément (c.-à-d.
Boat
Donne les deuxBoot
etBaat
) - Étant donné que la lettre
y
représente soit une voyelle ou un son de consonne (comme nous parlons anglais), la traiter comme une voyelle ou une consonne est autorisée, mais les réponses doivent indiquer explicitement si elles se traitenty
comme une voyelle ou non.
Exemples:
Bonjour le monde
Hello world!
donne:
Helle werld!
Hollo world!
Extrait du texte français original (traduit), y
traité comme une voyelle:
An elephant that was rambling all gently in the woods...
donne:
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...
Notez le comportement sur la voyelle en majuscule: la casse est conservée à son index (règles 8 et 9).
Exemple sans voyelle
Entrée qui ne contient aucune voyelle, comme:
lgn@hst:~$ rm -rf ./* ~ /
ne doit produire aucune sortie ou un seul saut de ligne.
Entrée voyelle unique
L'entrée contenant une seule voyelle est sortie telle quelle.
Dad sat at a car and saw a fat bat.
donne:
Dad sat at a car and saw a fat bat.
C'est du golf de code , donc le moins de code de bytecount gagne (rien que la gloire PPCG éternelle)!
Rubis , 78 octets
Essayez-le en ligne!
Une approche rapide et naïve. Y n'est pas considéré comme une voyelle.
la source
bash, 96 octets
Deux solutions de longueur égale:
Essayez-le en ligne!
Prend l'entrée en tant qu'argument de ligne de commande et renvoie à STDOUT.
la source
05AB1E (hérité) , 19 octets
(Indirectement) sauvé un octet grâce à Kevin (imprimant directement à l'intérieur de la boucle plutôt que de se joindre, ne fonctionne que dans la version héritée).
Essayez-le en ligne!
Utilisation de la réécriture Elixir, 20 octets
Essayez-le en ligne! (sans
y
) | Essayez-le en ligne! (avecy
,žM
étant remplacé paržO
- il en va de même pour la version héritée)Comment ça fonctionne
la source
y
devrait également utiliser à la6
place de5
, btw.y
version -vowel, j'ai accidentellement copié le mauvais lien TIO quand j'ai répondu: | ...i
dans mon code .. Votre réponse échoue pour les entrées sans voyelles. Attendu est une sortie vide, mais il imprime en fait l'entrée elle-même .. :(Japt v2.0a0
-R
,2422 octetsTraite
y
comme une voyelle. Modifiez les deux occurrences de\y
à\v
pour le traiter comme une consonne.Essayez-le
Explication
la source
Gelée ,
23 20 1817 octets-2 Merci à Erik le Outgolfer
Pour traiter
y
comme une voyelle, remplacer les deuxc
s pary
s.Essayez-le en ligne!
Comment?
la source
ż/
sur une paireZ
, deux dyades d'affilée où la gauche n'est pas appariée dans une monade ont implicitement l'argument entre les deux)Z
> _ <), je ne sais pas ce qui se passait avec ma session TIO, mais la suppression du redondantð
ne fonctionnait pas; redémarrage fixe.x€
→x
aussi, mais tu m'as ninja. : PRouge , 229 octets
Prendre
y
pour une non-voyelleEssayez-le en ligne!
Un peu plus lisible:
la source
R ,
138, 129 octetsEssayez-le en ligne!
y
n'est pas considéré comme une voyellela source
Python,
129119112 octetsEssayez-le en ligne!
-7 octets grâce à @ Mr.Xcoder
la source
JavaScript (Node.js) , 99 octets
Friandisesy comme consonne.
Essayez-le en ligne!
Commenté
la source
Java 10,
196188 octets-8 octets grâce à @ joH1 .
Sans
y
voyelle pour enregistrer les octets.Essayez-le en ligne.
Explication:
la source
v
dans la bouclePython 2 , 112 octets
Essayez-le en ligne!
Traite
y
comme une consonne.la source
Perl 6 , 64 octets
Essayez-le en ligne!
la source
Java (OpenJDK 8) , 184 octets
y est une voyelle
Essayez-le en ligne!
la source