C'est un défi simple: à partir d'une séquence d'entiers, trouvez la somme de tous les entiers qu'elle contient.
Mais avec une torsion. Votre score est la distance de Levenshtein entre votre code et la phrase suivante (Le défi):
À partir d'un ensemble d'entiers, trouvez la somme de tous les entiers qu'il contient.
Vous pouvez supposer qu'il n'y a pas de nouvelles lignes ni d'espaces de fin dans l'entrée.
Exemple d'entrée / sortie:
Input: 1 5 -6 2 4 5
Output: 11
Input: 1 -2 10
Output: 9
Une calculatrice en ligne pour la distance de Levenshtein est disponible ici: http://planetcalc.com/1721/
Réponses:
Python, distance 3
Cela donne la fonction intégrée
sum
, qui peut résumer un ensemble commesum({3,5,7})==17
. Les parties restantes sont commentées. Cela a distance 3, avec 3 modifications:#
sum
avec#
la source
Julia, distance
2726Sans commentaires!
Cela crée une fonction appelée
Given
qui accepte un tableau et renvoie la somme de ses éléments. Comme beaucoup de commandes intégrées de Julia ont des noms pertinents (mais ne sont pas pertinentes pour le calcul ici), nous pouvons simplement en énumérer quelques-unes délimitées par des points-virgules. Tant qu'ils ne sont pas la dernière chose listée, ils ne seront pas retournés. La dernière partie crée en fait un tableau contenant la somme et trois fonctions et sélectionne le premier élément, la somme.la source
Given=(a;set;of=integer; find;th;[sum,of,all,integer, in][])
- "Given" fonctionne toujours de la même manière, mais la distance est de 18.APL, distance
63Sauvegardé 3 distances ...? merci à Dennis!
Cela résume un tableau donné (
+/
). Le reste de la phrase est ajouté à la fin à l'aide d'un commentaire (⍝
).la source
{
et⍵}
.+/
est déjà une fonction valide.GolfScript, 5
C'est un programme complet qui n'utilise aucun commentaire (mais beaucoup de noops).
Essayez-le en ligne dans Web GolfScript .
la source
R, Distance
373634Sans utiliser les commentaires :)
Notez qu'il y a un espace au début.
la source
Mathematica, distance 17
Given a set of integers find the sum of all integers in it*0+Total@Input[]
Il n'utilise aucun commentaire ni aucune opération, mais déclare tous les mots en tant que variables, puis les supprime en les multipliant par zéro.
Il présente également l’avantage d’être la seule réponse qui prend en réalité un ensemble d’entiers en entrée.
L'entrée
{1,2,3}
fournit la sortie6
comme prévu.Malheureusement, la
Sum
fonction Mathematica ne fait pas la tâche de la question, ce qui nécessite un plus grand nombre d'octets.la source
Given a set of integers find the sum of all *0+Total@Input[]
distance 14Java -
4341J'ai essayé.
Java: P.
la source
RProgN , Distance 2.
Dans RProgN, a, set, find et sum sont toutes des commandes. Tout le reste est ignoré par défaut dans la syntaxe. a pousse l'alphabet vers la pile, ce qui fera échouer la somme. Set n'a jamais assez d'arguments, donc échoue toujours, en erreur. La recherche trouve un nombre incorrect d'arguments ou tente de comparer l'alphabet avec la pile d'entrée, ce qui ne fonctionne pas.
a et set peuvent tous deux être "corrigés" en supprimant l'espace entre eux, aset n'étant pas une fonction, il est donc ignoré. Rechercher a juste un caractère supplémentaire inséré au début, ce qui le rend également non reconnu et ignoré. Il ne reste que la somme qui résume le contenu de la pile d’entrée.
Enfin, RProgN pourrait gagner quelque chose!
Essayez-le en ligne!
la source
CJam,
765C'est une fonction anonyme qui extrait un tableau de la pile et laisse un entier en retour.
Merci à @AboveFire pour avoir réduit la distance de 1.
Essayez-le en ligne.
la source
Matlab, distance
2928Sans utiliser de commentaires :-)
Le code est sous la forme d'une fonction anonyme. Je suppose que l'entrée est un vecteur (1D-array) de nombres.
Exemple:
la source
O , 5
Les nombres doivent être en notation hexadécimale et négative inversée:
Essayez-le en ligne
la source
K,
605Je suppose que les symboles ne vont pas bien avec le Leve, quelle que soit la distance ...Hahaha. À l’origine, je n’avais aucune idée de la distance parcourue par le LeveXXX, alors j’en ai eu 60. Puis, grâce à des commentaires utiles, il est tombé à 5.
la source
F #, distance 21
Je dois aimer la possibilité d'utiliser des doubles ticks pour donner à une fonction un nom avec des espaces.
Usage:
la source
Pip, distance 3
Rejoindre le club de golflang trivial no-comments-but-lot-of-no-ops répond ...
Dépôt GitHub pour Pip
Le code se documente pratiquement tout seul; peut-être
s/in/using/
pour une description plus précise. Les entiers donnés en tant qu'arguments de ligne de commande sont lus dans la listeg
, qui est pliée lors de l'addition et le résultat imprimé automatiquement. Presque tout le reste n'est que des variables, qui ne sont pas des opérations.J'ai été un peu surpris au début de
s, f
travailler sans se plaindre, car sef
référer à la fonction principale et prendre la portée d'un bloc de code n'a pas de sens. Mais j’ai alors réalisé: l’,
opérateur range, lorsqu’on lui donne un argument de fonction, construit simplement une autre fonction (comme le font de nombreux opérateurs dans Pip). Donc, je penses, f
évalue à{Given a set of integers, find the sum of all integers in " ",$+g}
. (Ce qui est ensuite jeté quand même.)Un dernier point: ce code fonctionne avec la version actuelle de Pip, dans laquelle je n'ai encore rien assigné
G
. Si dans une version future je créeG
un opérateur binaire ou ternaire, une version distance 4 sera nécessaire. Utilisergiven
au lieu deGiven
fonctionnerait bien.la source
Haskell, distance 11
Sans commentaires!
Usage:
la source
Cubix , Distance 9
Essayez-le en ligne!
Cela enveloppe le cube
Le code opératif est
I+i
Entrer un entier, ajouter au TOS puis entrer un caractère?
Tester la valeur du caractère. Rediriger à gauche pour -1 (fin de saisie) ou à droite pour autre chose (0 ne peut pas être entré);O@
pop TOS, sortie somme et sortie<;u
rediriger, pop TOS et demi-tour sur le débutla source
Pyth - 4
Il suffit de placer le code réel
sQ
devant la chaîne non opérée par un espace.Essayez-le en ligne ici .
la source
PHP4.1, distance 25
Celui-ci est assez long et très tard dans la course.
Mais enfin, le voici:
Pour que cela fonctionne, il vous suffit de passer un tableau sur POST / GET / COOKIE / session, en utilisant la clé
f_all_integers_in_i
.la source
Pyt , distance 1
Tous les caractères alphanumériques sont non-ops dans Pyt, et la somme d'une liste prend un seul caractère:
Essayez-le en ligne!
la source
C ++ 17, distance
4429Variadic Générique Lambda FTW
Solution précédente
la source
05AB1E, distance 3
Essayez-le en ligne!
la source
Pyke , Score 3
Essayez-le ici!
la source
Ly , score 4
Notez la fin de ligne.
Essayez-le en ligne!
Le code est assez explicite.
&+
est l'opérateur de sommation de Ly, tandis que#
est un commentaire. Il est regrettable que je doive inclure une fin de ligne, car terminer un programme avec une ligne de commentaire va "commenter" la sortie implicite de Ly, qui est en fait un bogue dans l'interpréteur que j'appelle une fonctionnalité.la source
dc, 14
commentaires:
TIO
il se plaint que la pile est vide si vous entrez 1 nombre, mais fonctionne toujours, et la suppression de 0 enregistre 2 diff.
la source
Excel VBA, Distance: 11
Fonction de fenêtre immédiate VBE anonyme qui prend des entrées dans la plage
[a:a]
de l'objet ActiveSheet et les envoie dans la fenêtre immédiate VBEla source
Brain-Flak , 20
Essayez-le en ligne!
Explication
Comme il n'y a pas de parenthèses dans le texte original, cela revient à un code-golf problème de dans Brain-Flak. Mais cela ne rend pas encore cette réponse triviale, comme le sont rarement les réponses dans Brain-Flak.
La première intuition serait probablement le code suivant
Ce qui fonctionne ... à moins qu'il y ait un zéro sur la pile, auquel cas la somme est juste jusqu'au zéro. Pour contourner ce problème, nous devons utiliser une hauteur de pile pour vérifier que la pile n'est pas vide. Cela peut être mis en place comme ça
Celui-ci fonctionne, mais il y a quelque chose qui ne va pas. Nous continuons à faire taire les pops et les poussées dans les boucles, mais ils sont presque égaux et il devrait donc y avoir un moyen de les annuler. Si on essaye
Nous nous retrouvons à
n
chaque fois. Donc, voici le truc, nous avons déjà unn
emplacement, nous le déplaçons dans la poussée pour équilibrer les choses.la source
2^8
réponse, ppÀ venir , 17
Essayez-le en ligne!
la source
Gelée , Distance: 2
Essayez-le en ligne!
Jelly n'évalue que le lien principal (la dernière ligne) et les commandes explicites exécutent d'autres liens (autres lignes).
La dernière ligne a
S
, qui résume l'entrée.La première ligne n'est pas exécutée car il n'y a pas de référence dans le lien principal.
la source
Casser! 4.2.2.9 (+ Outils), syntaxe scratchblocks3, distance 35
Ceci est une fonction.
integers, find the sum of all inte
est l'entrée.la source
integers, find the sum of all inte
est un argument, il n'est simplement pas distingué des variables normales dans la syntaxe de scratchblocks3, c'est pourquoi j'ai clarifié