Sur ce défi, vous devez résoudre ce défi.
Le concours est terminé! Vérifiez la fin de la question
Spécifications:
- Écrivez le plus petit code (N'importe quelle langue *).
- Le score d'une réponse est la somme de:
- Longueur de code sans espace .
- Nombre de réponses utilisant cette même langue au carré.
- Longueur du nom de la plus grande langue du concours moins la longueur de votre langue.
- Downvotes moins Upvotes (alias moins Total des votes)
- Écrivez la position des utilisateurs et le score.
- Chaque utilisateur ne peut écrire qu'une seule réponse.
- Le score le plus bas l'emporte.
Essai:
Donc, à la fin du concours, une entrée possible pourrait être (STDIN):
Les colonnes sont: Nom d'utilisateur, Langue, Longueur du code (sans espace) et TotalVotes
UserA Python 100 1
UserB Perl 30 2
UserC Java 500 3
UserD Brainfuck 499 4
UserE Perl 29 5
Si votre nom d'utilisateur comporte des espaces comme "Mon nom d'utilisateur", il deviendra "MonNomUtilisateur", donc l'entrée aura toujours exactement 4 colonnes .
La sortie sera (STDOUT):
1 UserE 33
2 UserB 37
3 UserA 103
4 UserD 496
5 UserC 503
Explication:
User P N^2 L V
A 100 1 3 -1
B 30 4 5 -2
C 500 1 5 -3
D 499 1 0 -4
E 29 4 5 -5
Brainfuck est le plus grand nom avec 9 caractères ( 9 - 9 = 0
).
Perl et Java ont 4 caractères ( 9 - 4 = 5
).
Python a 6 caractères ( 9 - 6 = 3
).
Perl a 2 entrées donc chacun obtient 4 points supplémentaires.
À propos des langues:
Le nom de la langue ne doit contenir que des lettres anglaises (c'est-à-dire [A-Za-z]) et celles qui ne correspondent pas doivent être "traduites" en autre chose.
À la fin du concours, chaque langue doit avoir sa représentation (vous pouvez proposer de meilleures représentations)
Exemples:
Python3 -> Python
Ruby1.9 -> Ruby
Shell Script -> Shell
C++ -> Cpp
C# -> CSharp
><> -> Fish
Date limite: 20 août 2011 00:00 UTC
À la fin du concours, le gagnant doit utiliser son programme pour trouver le gagnant. Il est permis aux non gagnants d'utiliser leurs programmes pour trouver le gagnant et de lui dire d'utiliser son programme pour trouver le gagnant. :)
Le gagnant (voir ci-dessus) obtient la réponse acceptée!
* Le langage des espaces blancs a l'avantage injuste de pouvoir introduire une complexité illimitée sans pénalité sur le nombre de caractères. Les réponses écrites en blanc peuvent être sur le concours mais ne peuvent pas gagner.
Si vous pouvez faire la logique de votre programme dans les espaces blancs , vous ne pouvez pas non plus gagner. C'est un sujet subjectif, mais si votre programme peut augmenter considérablement de taille sans être pénalisé, il tombe dans cette condition.
Entrée finale
Ordre alphabétique des noms (au 20 août 2011 UTC 00:00)
boothby Sage 41 9
Harpyon Python 203 4
JBernardo Python 184 7
JoeyAdams PostgreSQL 225 6
jpjacobs AWK 269 4
Lowjacker Ruby 146 2
PeterTaylor Golfscript 82 4
rmackenzie CommonLisp 542 2
shesek Javascript 243 3
userunknown Scala 252 1
Comme les réponses de la mienne et de boothby ne sont pas autorisées à gagner, le gagnant doit se proclamer vainqueur en éditant cette question et en affichant le résultat final ci-dessous.
Sortie finale
1 boothby 39
2 PeterTaylor 79
3 Lowjacker 151
4 JBernardo 185
5 Harpyon 207
6 JoeyAdams 220
7 shesek 241
8 userunknown 257
9 jpjacobs 273
10 rmackenzie 541
Réponses:
Golfscript, 83 caractères (82 sans compter les espaces blancs)
Explication:
la source
Sage:
484241 non blanc (60246 octets au total)Juste pour être une piqûre:
Notez que la première ligne doit être équivalente à
s='\t'
, mais le bloc de code SE traduit la tabulation en 4 espaces.L'espace se décompresse pour:
Notez que mon utilisation de
[0..len(inputs)-1]
assure que ce n'est pas un script Python, car Sage est un superpython *. Malheureusement, l'exec retombe sur Python ... donc je dois le préparer.edit 1: fractionnement sur les onglets, pas les sauts de ligne - à quoi pensais-je? édition 2: a rendu le code plus facile pour les yeux et a recyclé l'onglet de fractionnement en poussant une autre «nouvelle ligne» vers l'espace blanc
* ok, pas tout à fait: on casse xor
la source
Python, 184
C'est pourquoi j'aime les espaces.
C'est beaucoup plus lisible!
la source
PostgreSQL - 225 caractères non spatiaux
242 → 225: sous-requêtes remplacées par des clauses de fenêtrage .
testé sur 9.2devel
Utilisation et sortie:
la source
Python 2 -
210203 caractères non spatiauxUtilisation et sortie:
la source
x.split()
(cela supprimera également\n
)AWK,
277269 caractères non spatiauxUtilisé
in
pour couper 8 caractères.Version espacée et version commentée:
usage:
la source
sed '/#/ d' meta.awk|sed ':a;$!N;s/\n//;ta;s/\s//g;'|wc -c
pour compter les caractères.Rubis, 146 caractères + 4 espaces
la source
JavaScript, 243 caractères
Plus long que la plupart des autres solutions ... mais le meilleur que j'ai pu trouver en JavaScript.
Usage
L'entrée doit être dans une variable J. Par exemple, ouvrez une console et écrivez:
CoffeScript, 177 caractères
À propos de la même logique, dans CoffeScript:
la source
length
attribut en utilisant une variable et des indices.Lisp commun - 546
(lorsque le garçon a joué au golf en consolidant les parenthèses, sans compter les espaces)
Fortement golfée, ma solution lisp commune était et est la plus longue sur la planche. J'ai donc décidé de tricher un peu en écrivant un chargeur de démarrage beaucoup plus court et en prétendant que ma soumission.
(Je considère que la soumission de @ Boothby est un précédent en faveur de ce comportement)Un grand merci à Peter Taylor pour son aide à éliminer tous les derniers caractères de ce bootstrapper.
BASH - 35
Utilisation : cat ./test0 | bash ./btstrp.sh
Joey Adams a souligné que ce n'est pas une solution équitable car je peux "augmenter arbitrairement la complexité de votre solution sans augmentation correspondante de la taille du code", un point qui n'est pas clairement exprimé dans la spécification.
la source
$REPLY
. Essayezwhile read x;do a=$x"\n"$a;done
. Et vous devriez pouvoir supprimer les espaces après le|
s sur la dernière ligne. Sur une autre note, je ne suis pas sûr que l'utilisation d'une adresse IP interne soit très utile: cela ne fonctionnera pas pour quelqu'un d'autre.wget -q http://url/l.lsp ;cat - |clisp l.lsp
Scala
269 266252 sans espaces ni sauts de ligne.Invocation:
mises à jour:
ma solution:
*) hors concours
la source
stdin
place defromFile(System.in)
.