Un chaton ressemble beaucoup à un chat. Certaines des principales différences sont la gentillesse, le manque d’intelligence et la taille. De même, la cat
commande est différente de la kitten
commande. Heureusement, il n'y a qu'une seule différence dans ce cas. Dans la commande chaton, toutes les lettres majuscules sont remplacées par des lettres minuscules.
Objectif
Pour mettre en œuvre un programme qui se comporte de la même manière que cat
. Tous les caractères [A-Z]
sont en minuscule.
Contribution
Une liste de fichiers comme arguments de ligne de commande. Si aucun fichier n'est répertorié, lisez-le à partir de l'entrée standard. L'entrée peut contenir des caractères non imprimables et des caractères situés en dehors de la plage ASCII.
Sortie
Si l'entrée est un groupe de fichiers, concaténez le contenu et affichez tous les caractères en minuscule. Si vous lisez à partir de STDIN, indiquez le contenu de STDIN avec toutes les lettres majuscules en minuscule.
Remarque: Ne mettez que les caractères en [A-Z]
minuscule. C'est inacceptable si d'autres caractères sont en minuscules.
Exemples
$ echo "HelLo" > file.txt
$ kitten file.txt
hello
$ echo "Good Bye" | kitten
good bye
$ echo "Ä" | kitten
Ä
Comme d'habitude avec le code-golf , le moins d'octets gagne.
Classements
Voici un extrait de pile permettant de générer à la fois un classement régulier et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse apparaît, commencez votre réponse par un titre, en utilisant le modèle Markdown suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores en les effaçant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs numéros dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou si vous souhaitez répertorier séparément les pénalités d'indicateur d'interprétation), assurez-vous que le score réel est le dernier numéro de l'en-tête:
# Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de la langue un lien qui apparaîtra ensuite dans l'extrait de classement:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
la source
[A-Z]
minuscules" anticipez-vous l'entrée Unicode?Ü
,Ñ
et les goûts?Réponses:
Perl, 6 octets
5 octets de code + 1 octet en ligne de commande
Exemple d'utilisation:
Confirmation du bon comportement Unicode:
la source
Bash, 19 octets
La meilleure façon de faire des chatons est d'utiliser des chats réels.
Exemple d'exécution
la source
man woman
blagues…Perl, 11 octets
10 octets de code + 1 octet en ligne de commande
Exemple d'utilisation:
la source
Python 3, 77 octets
la source
Ruby, 13 octets
Le nombre d'octets comprend 1 octet pour le
p
drapeau. Exécuter comme ceci:ruby -p kitten.rb
.Accepte les arguments stdin ou file, comme un chat adulte.
la source
Ä
?echo "HelloÉ" | ruby -p kitten.rb
->helloÉ
PowerShell, 112 octets
Horriblement illisible. Voici une version légèrement développée ci-dessous:
Définit une fonction interne
l
qui itère sur une boucle de 97 à 112 (c.-à-d., ASCIIa
à ASCIIz
). Divise la chaîne d'entrée sur ce caractère (yay par défaut, insensible à la casse), le rejoint avec la minuscule "correcte". Notez que oui, cela signifie que "Test" deviendrait brièvement "T st", car il est itératife
, par exemple. N'affecte pas la sortie.La seconde moitié est la partie la plus délicate pour déterminer si nous avons une entrée de pipeline (équivalente à stdin pour PowerShell) ou une entrée de ligne de commande. La variable spéciale
$args
n’est présente que si une entrée de ligne de commande est présente, nous lançons donc une boucle sur chacune d’elles,gc
(pourGet-Content
) et schlep jusqu’àl
. Autrement, nous ne ferons que$input
grimperl
. Notez que nous pourrions échanger nos instructions if / else (c'est-à-direif($input)
), mais comme "input" est un caractère plus long que "args", cette méthode est plus courte.la source
"String".ToLower()
serait également en minuscules caractères Unicode, ce qui est contraire aux règles. Il y a beaucoup de choses que PowerShell ne fait pas correctement en ce qui concerne Unicode, mais malheureusement, il s'agit d'un cas où cela fonctionne correctement.Python 2, 53 octets
la source
R, 97 octets
Usage:
la source
CoffeeScript , 292 octets
Usage:
Ma première participation sur codegolf alors ne soyez pas impoli :).
Bien sûr, ce code peut être joué plus souvent et café / javascript n'est pas le meilleur choix pour le faire, mais il fait ce qui est attendu.
Lorsqu'il lit les arguments, il prend également en compte l'existence du fichier (si le fichier n'existe pas, la chaîne est chatonée).
Toute aide ou conseil pour améliorer ce code est la bienvenue!
la source
Julia, 123 octets
Ungolfed:
la source
CJam, 18 octets
La liste des fichiers doit être fournie sous la forme d'URL, qui est le seul format que CJam comprend.
Exemple fonctionne
Comment ça fonctionne
la source
Python 2,
10010297 octetsFonctionnalité corrigée (et 4 octets ajoutés) par matsjoyce. Heureusement, j'ai économisé deux octets en passant à Python 2.
Prend des arguments à partir de la ligne de commande ou de STDIN si aucun argument n'a été trouvé.
Cela abuse des arguments par défaut de certaines fonctions. Par défaut,
open
utilise le mode texte en lecture seule, ce qui est exactement ce que nous voulons.read
, si appelé sans arguments, renverra tout le texte du flux.Ungolfed:
la source
input
ne pas évaluer, je pouvais passer à Python 2 et supprimer les parenthèsesprint
.Python 3,
124123 octetsPython mange des chatons!
la source
C,
106108 octetsEdit: Correction d'une erreur qui se glissait lorsque l'on compressait des octets. Stdin ne fonctionnait pas, maintenant ça l'est.
Je suis sûr que je pourrais gagner quelques octets, mais voici une soumission facile à comprendre, pas du tout abusive de la langue:
Et une version un peu plus proprement formatée pour la lecture:
la source
Mathematica, 66 octets
Appelé comme
Mathematica a déjà une
ToLowerCase
fonction, mais convertit également des caractères spéciaux (Unicode et mathématiques). Alors j'ai dû le chatoniser. Cette fonction prendra n'importe quelle entrée.la source
C #,
230226 octetsUngolfed:
la source
Haskell, 133
Le traitement des arguments de type chat est dérivé de ce didacticiel , puis réorganisé pour raser les personnages.
Expliquant
l
, la fonction pour mettre en minuscule un caractère:sum[32|condition]
est une forme plus courte deif condition then 32 else 0
.[x..]!!count
isiterate succ x !! count
istoEnum $ fromEnum x + count
et est plus court que l'importation et l'utilisationData.Char.toLower
avec une condition pour la limiter à ASCII.'@'
et'['
sont les caractères précédantA
et suivant immédiatementZ
, afin que je puisse utiliser à la<
place de<=
.Merci à Anders Kaseorg pour ses contributions
sum[...|...]
et[x..]!!
astuces.la source
l x=[x..]!!sum[32|x>'@',x<'[']
C #, 342 octets
C #, 319 octets
monocouche, comme ci-dessus:
la source
SILOS 179 caractères
N'hésitez pas à essayer ce code en ligne!
Essentiellement, cela se traduit en pusedocode.
la source
C, 91 octets
C, 98 octets
Bien que si la lisibilité importait plus que le nombre d'octets, la même logique est écrite ci-dessous:
la source
sed, 14 octets
Courez avec
env -i sed -f kitten.sed
.la source
LANG=C sed -f kitten.sed
, je ne suis pas sûr de devoir appliquer une pénalité pour tenir compte de cela. Cette question ne précise pas comment compter les appels de programme, et cela ne semble pas être traité en méta.s/.*/\L&/
pour une solution de neuf octetss/.*/\L&/
ets/./\L&/g
sont en effet des solutions de 9 octets!Java, 198 octets
Vous êtes obligé d'utiliser le lambda ci-dessus avec des fichiers, vous n'avez donc pas besoin de prendre l'entrée de STDIN! En outre, c'est un
Function<File[], UnaryOperator<String>>
. C'est utilisé commefoo.apply(anArrayOfFiles).apply(anything)
.Pour les nouveaux utilisateurs de Java, cela prend plus de 223 octets:
Comme quelque chose qui compile, cela prend 232 octets:
la source