Code le plus court pour produire une sortie infinie


121

Écrivez le code le plus court possible qui produise une sortie infinie.

C'est tout. Votre code ne sera disqualifié que s'il cesse de produire une sortie à un moment donné. Comme toujours dans le code golf, le code le plus court gagne.

Voici une liste de réponses qui, à mon avis, sont vraiment intelligentes pour qu'elles puissent obtenir un crédit:

Classement


118
Toutes les réponses sont disqualifiées, car la Terre sera engloutie par le soleil et, à un moment donné, l'univers mourra: P
Bouton de porte

17
Est-ce que "l'infini jusqu'à la panne de votre ordinateur" compte? <_ <
Izkata

5
Si j'écris le mien dans Piet , puis-je compter les pixels du texte utilisé par les autres programmes? Je crois que le plus petit programme répétitif possible de Piet serait de 6 pixels. Cela bat Befunge si "off" pixels comptent toujours.
DampeS8N

9
@Izkata Donc, toute réponse qui plante votre ordinateur est également autorisée: D
mercredi

7
@Doorknob Alors , vraiment, le défi consiste à produire une sortie infinie dans un fini laps de temps. Cela semble assez facile.
Sanchises

Réponses:


212

Befunge (1)

.

Sorties 0pour toujours. Cela fonctionne parce que dans les lignes Befunge, les lignes se chevauchent et vous obtenez 0si vous sortez de la pile vide.


6
Je pense que nous avons un gagnant.
Primo

96
Je jure que j'ai eu un cours Java quelque part qui était plus court. +1
l0b0

56
Ce point m'a maintenant valu plus de réputation que mes deux prochaines réponses combinées.
marinus

3
Aw ... Ce n'est pas juste :) Faisons-le comme ceci: je réduis la taille de cette image de quelques pixels et on l'affiche très petit .. Pour que ça ressemble à un point? Et appelez ça même? :)
Benjamin Podszun le

4
Pourquoi n'est-ce pas la réponse acceptée?
Claudiu

101

x86 .COM exécutable, 7

en hex:

b8 21 0e cd 10 eb fc

Les autres ont besoin de kilo-octets ou plus de bibliothèques système et d'exécution. Retour aux sources:

$ echo -ne '\xb8!\xe\xcd\x10\xeb\xfc' > A.COM
$ dosbox A.COM

sortie

Vous pouvez modifier le 2e octet ( 0x21, ou !) pour modifier la sortie.

Utilise une interruption du BIOS pour la sortie; n’a pas besoin de DOS, mais je n’ai pas configuré QEMU.


Explication

Le code machine correspond à l'assemblage suivant:

        mov     ax, 0x0e21
again:  int     0x10
        jmp     again

La sortie est entièrement dans l' intappel - selon cette référence , int 0x10 avec 0x0e dans AH imprimera l'octet dans AL à l'écran.

Sachant que le registre AX est un mot de 16 bits comprenant AH dans l'octet de poids fort et AL dans l'octet de poids faible, nous pouvons économiser une charge supplémentaire (et donc un octet dans le code machine) en les chargeant ensemble.


2
Sensationnel. C'est vraiment bien
2014

46
une longueur de code machine faible doit valoir plus de points que les langages de haut niveau.
Pwned

12
C'est le code le plus court au sens réel.
Microbian

4
Non seulement ça marche, mais ça marche plus vite que toutes les autres entrées. :)
Thane Brimhall le

14
@ThaneBrimhall Ce qui est bien sûr des critères les plus importants de loin pour une boucle infinie ... Si mon ordinateur se bloque, je veux faire de la manière la plus efficace!
kratenko

91

Fichier batch Windows, 2 caractères

%0

S'appelle infiniment.


12
Fermer la deuxième place, mec. Bien joué. Je n'ai jamais vu qu'une seule réponse où Batch l'a gagnée.
Unmemeat

C'est vraiment super!!!
Qwertiy

C'est génial!
Patrick Purcell

Comment ça marche: %0n’a pas de @, donc ça produira constamment quelque chose comme ...> %0. Cela pourrait bien manger toute la RAM, car elle est récursive.
Erik l'Outgolfer

2
@EriktheOutgolfer pourrait ? Comment cela ne plantera- t-il pas à un moment donné en raison d'une récursion infinie? Je ne vois pas comment cela pourrait durer plusieurs heures
phil294

68

Befunge 98-2

,"

Sorties ",,,,,,,,,,,", "pour l'éternité.


2
En fait un peu intelligent.
mardi

Je vous remercie. C'est étrange, la version ", les espaces de sortie (ou". 32 32 32 sorties) en utilisant la plus courante implémentation b98. Aucune idée d'où ça vient.
AndoDaan

1
Dommage qu'il soit enterré sous 82 395 réponses vraiment nulles.
mardi

7
@tbodt Eh bien, selon les spécifications, mon petit programme a toute l'éternité pour remonter petit à petit. Alors ... doigts croisés ...
AndoDaan

@AndoDaan: ", crée une chaîne avec une virgule et des espaces INT_MAX-2, puis affiche le dernier espace. La pile se remplira donc d'une virgule INT_MAX-3 espaces peu efficaces.
YoYoYonnY

62

sh, 3 octets

yes

sorties en ycontinu


10
Bien que ce yessoit un binaire externe, et ne fait pas partie de bash (à proprement parler).
Bob

55
En bash, (presque) tout est un binaire externe.
Johannes Kuhn

5
Normalement, vous n'avez pas d'alias y=yeset si votre système n'est pas ésotérique, vous pouvez en déduire qu'il yesest dans votre $PATH(voir Utilitaires GNU Core ). Avec votre logique, il est possible d’assumer des constellations étranges pour chaque solution.
klingt.net

5
Bien, mais ce n’est pas seulement une bashcapacité: c’est une partie de base des shell utils du shell POSIX . (Par exemple, s'il vous plaît changer le titre pour sh: 3 caractères ;-)
F. Hauri

2
Comme le dit technosaurus, dans busybox, il s'agit d'une commande intégrée, mais dans sh, ce n'est pas le cas, vous devez donc dire sh + coreutils.
Erik the Outgolfer

42

Haskell: 8 personnages

Vieux fil, mais amusant

 fix show

à Haskell, il imprime

\\\\\\\\\\\\\....

pour toujours puisqu'il est essentiellement en cours d'exécution

 let x = show x in x

Il sait que xc'est une chaîne, donc le premier caractère l'est ", alors il faut y échapper \", mais sachez qu'il \faut échapper ainsi \\\x, et ainsi de suite.


... sensationnel. Maintenant, je me demande si fix$showcela aurait été plus esthétique :-)
John Dvorak

7
Parce que cela nécessite import Data.Function, et parce qu'il renvoie la chaîne plutôt que de l’imprimer, je m'interroge sur l’équité du nombre de caractères. En outre, la chaîne est en fait "\" \\\ "\\\\\\\" \\\\\\\\\\\\\\\ "\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\ "" \\\\\\\\\\\\\\\\\ ... ".
Anders Kaseorg 20/02/2016

36

Fichier de commandes Windows, 8 caractères

:a
goto a

1
Cela ne produit pas une sortie infinie, est-ce que ...
Poignée de porte

38
ça marche ... sans @echo éteint, il affiche "goto a" jusqu'à ce que vous le fermiez
Patrick Purcell

11
nous avons besoin de plus de BAT ici
Einacio

35
Je compte dix caractères: :a\r\ngoto aparce que Windows utilise CRLF
wchargin le

1
@WChargin Je viens de vérifier en utilisant un éditeur hexadécimal. 3a 61 0a 67 6f 74 6f 20fonctionne sur mes fenêtres 8 ...: P
YoYoYonnY

32

Brainfuck, 4

+[.]

Alternativement

-[.]

8
Ni sont \x01ni \xFFcaractères imprimables. Je suppose que ce n'était pas une exigence, cependant: - /
John Dvorak

Une façon de rendre les caractères imprimables en sortie serait de remplacer le + par, cela signifie cependant que cela nécessite une entrée
Prismo

31

Java, 54 caractères

Meilleure tentative en Java:

class A{static{for(int i=0;i<1;)System.out.print(1);}}

7
Fonctionnel, conforme aux règles, golfé. Vous vous demandez pourquoi il a été voté?
manatwork

14
Java interdit-il le for(;;)modèle classique ? Qu'en est- il while(true)?
CodesInChaos

17
@CodesInChaos, Java n'interdit normalement pas ces modèles et, normalement, je les considérerais plus propres et plus idiomatiques. Bien que nous essayions ici de glisser une boucle infinie au-delà du compilateur (ces formulaires amènent le compilateur à se plaindre du blocage du bloc statique {}).
Rich Smith

2
@Mechanicalsnail Oui, les blocs statiques ne peuvent pas s'exécuter seuls depuis java 7.
Fabinout

1
@OliverNi Mais vous ne pouvez pas utiliser le staticbloc.
Okx

30

Bash, 4 octets

$0&$

Sorties en ./forever2.sh: line 1: $: command not foundcontinu.

Parce que $0son arrière-plan est en arrière-plan, chaque parent meurt après la commande invalide $, et donc la pile / mémoire n'est pas consommée, et cela devrait continuer indéfiniment.

Étrangement, la sortie devient de plus en plus lente au fil du temps. topindique que l'utilisation du processeur du système est proche de 100%, mais qu'il existe des processus trop chargés en mémoire ou en processeur. On peut supposer que certaines ressources allouées dans le noyau deviennent de moins en moins efficaces.


2
peut-être un comportement de stdout ou similaire ...
masterX244

1
libérer des ressources est en concurrence avec des processus de forking / Pour l'arrêter, vous ne pouvez pas arrêter le processus car le PID change. La seule façon de l'arrêter est de renommer le script de manière à ce qu'il $0échoue.
Emmanuel

29

LOLCODE (36)

HAI IZ 1<2? VISIBLE "0" KTHX KTHXBYE 

La pensée que je donnerais un coup de feu à LOLCODE, a une quantité étonnamment grande de fonctionnalités.


2
Pas besoin de poser des questions sur stdio.
Chat

Dans la version de LOLCODE repl.it, vous n'avez pas besoin de HAIetKTHXBYE
MilkyWay90

24

JavaScript: 14

ATTENTION: vous ne voulez vraiment pas utiliser ceci dans votre navigateur

for(;;)alert()

31
Il suffit de cocher "Empêcher ce site d’ouvrir plus de boîtes de dialogue".
Johannes Kuhn

1
@JohannesKuhn ne vérifiez pas cela et vous avez besoin d'un redémarrage
Ilya Gazman

8
Ou alors, ne faites rien et n’affiche aucune sortie ultérieure.
Johannes Kuhn

il suffit de courir alert()me donne cette erreurError: Not enough arguments [nsIDOMWindow.alert]
Clyde Lobo

3
Est-ce vraiment une sortie infinie, lorsque le processus est bloqué et l'exécution arrêtée jusqu'à l'interaction humanoïde?
Morten Bergfall

24

Machine de Turing - 6 personnages:

#s->1Rs

#is est un symbole vide (sur la bande par défaut), sdécrit le seul état existant (début), 1imprime un chiffre, Rsignifie un décalage vers la droite, sà la fin, il reste dans le même état.


3
Je compte 7 caractères !?
F. Hauri

9
En notation peut - être la plus commune à 5 tuples , ceci serait écrit simplement comme les 5 caractères s#1Rs(état actuel, symbole actuel, symbole à écrire, direction à déplacer, état suivant).
res

19

Haskell, 10

print[1..]

Je pense que c'est le code le plus court

  1. Imprimer quelque chose.
  2. Créez une Showstructure de données infinie : capable.

Pour les intéressés, il imprime:

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,...

4
Y a-t-il une raison pour laquelle vous avez choisi le chiffre magique 32 pour vous arrêter?
Ike

12
Cela semblait agréable et rond, mais il remplissait aussi bien que possible l’espace réservé aux blocs de code sans nécessiter de ligne suivante.
Shiona

2
Si la machine a une quantité de mémoire finie, il peut s’arrêter lorsque l’entier devient trop gros pour être conservé en mémoire?
Jeppe Stig Nielsen

3
@JeppeStigNielsen Oui. Cependant, un entier qui remplirait même un mégaoctet de mémoire serait 2 ^ (2 ^ 20), soit environ 6,7 * 10 ^ 315652. Jusqu'à un gigaoctet de mémoire, le nombre deviendrait 2 ^ (2 ^ 30), un monstre avec presque un demi-milliard de chiffres. Je suis sûr que si nous essayions d'imprimer la série, la mort de l'univers par la chaleur nous frapperait avant que la mémoire ne s'épuise. Et l'échec du disque dur bien avant cela.
Shiona

5
Dans les commentaires sous le PO, il est mentionné que "l'infini jusqu'à ce que votre ordinateur se bloque" compte également.
11684

19

Marbelous 4

24MB

Marbelous surprend bien ici. Cela affichera une quantité infinie de signes dollar $, bien que la limite de pile soit atteinte assez rapidement.

Comment ça fonctionne.

24 est un littéral de langue qui tombera du tableau et sera imprimé dans STDOUT en tant que caractère asci correspondant. MB est le nom implicitement donné à la carte principale, puisque la carte principale n'a aucune entrée, elle se déclenche à chaque tick. Et comme les cellules sont évaluées de gauche à droite, le littéral sera toujours imprimé avant le prochain appel récursif.

Donc, cela équivaut grossièrement à ce pseudocode:

MB() {
    print('$');
    while(true) MB();
}

Une solution sans récursion infinie 11

24@0
@0/\..

Celui-ci fonctionne en bouclant le littéral entre deux portails @0, chaque fois que le 24 frappe le bas, @0il est transporté à la cellule sous le haut @0. Si elle atterrit sur la /\, qui est un opérateur clone, elle place une copie de la bille (littérale) à sa gauche (de retour sur le portail) et une autre à sa droite. Cette coopérative tombe ensuite du tableau (car il ..s'agit d'une cellule vide) et est imprimée sur STDOUT. En pseudocode, cela se traduirait par:

MB() {
    while(true) print '$'
}

Une solution plus courte sans récursion infinie 9

24
\\/\..

Celui-ci jette constamment la bille entre un cloneur et un déflecteur, en plaçant un exemplaire sur la cellule la plus à droite, pour le déposer au tableau. En pseudo-code, cela ressemblerait à quelque chose comme:

MB() {
    List charlist = ['$'];
    while(true) {
        charlist.add(charlist[0];
        charlist.add(charlist[0];
        charlist.pop();
        print(charlist.pop());
        // Wait, what?
    }
}

Remarque

Les ..cellules sont nécessaires sur les deux derniers tableaux car les billes tomberaient du plateau (et seraient jetées) sinon. Pour plus de plaisir, vous remplacez la 24bille par FFet la ..cellule vide par une ??qui transforme une bille en une bille comprise entre 0 et sa valeur actuelle avant de la déposer. Devinez à quoi cela ressemblerait sur STDOUT.


faire votre "/ \ / \" "\\ / \" pour éviter de produire une bille supplémentaire sur le bord gauche? amélioration purement esthétique.
Sparr

@Sparr, le point pris, j'ai édité le post.
overactor

5
Cette solution ne devrait-elle pas contenir 25165824 octets (24 Mo)? ; P
HyperNeutrino

18

C, 23 caractères

Légèrement plus court que la meilleure réponse C / C ++ jusqu'à présent. Imprime les lignes vides à l'infini (mais si compilé sans optimisations, déborde de la pile).

main(){main(puts(""));}

1
22 caractères: putc(0)(ou 1, ou 2, ... ou 9). Cela fonctionnerait-il?
CompuChip

@CompuChip, putcnécessite 2 paramètres.
Ugoren

10
@tdbot, notez qu'il s'agit de la réponse acceptée. J'apprécie le compliment, mais je ne comprends pas pourquoi. Il y a une réponse
Ugoren

@tbodt, pas tdbot. ftfy
nyuszika7h

5
@ nyuszika7h, De cette façon, je pourrais montrer à quel point je suis modeste, tout en conservant mon représentant.
Ugoren

14

Python 3: 15, 17 ou 18 caractères

La réponse de mdeitrick est plus longue dans Python 3, qui remplace l' printinstruction par un appel de fonction (15 caractères):

while 1:print()

Cela reste le plus court que j'ai trouvé dans Python 3. Cependant, il existe des manières plus intéressantes d'imprimer dans une boucle infinie qui ne sont plus que quelques caractères.

  • print()renvoie None, qui! = 9, ce qui en fait une boucle infinie; the 8est un no-op qui remplace pass(18 caractères):

    while print()!=9:8
    
  • iter(print, 9)définit une variable qui renvoie la sortie de print()jusqu'à ce qu'elle soit égale 9(ce qui n'arrive jamais). anyconsomme l'entrée itérable à la recherche d'une valeur vraie, qui n'arrive jamais puisque print()retourne toujours None. (Vous pouvez également utiliser setdans le même sens.)

    any(iter(print,9))
    
  • Ou, nous pouvons utiliser l’itérable en vérifiant s’il contient 8(17 caractères):

    8in iter(print,9)
    
  • Ou décompressez-le à l'aide de l'opérateur splat :

    *_,=iter(print,9)
    
  • La façon la plus bizarre que je pensais est d'utiliser destructuration Splat dans un appel de fonction, function(*iterable). Il semble que Python essaie de consommer l'intégralité de l'itéré avant même de tenter l'appel de fonction, même si l'appel de fonction est faux. Cela signifie que nous n’avons même pas besoin d’une fonction réelle, car l’erreur de type ne sera émise que lorsque l’itérable sera épuisé (c’est-à-dire jamais):

    8(*iter(print,9))
    

*iter(print,1),fonctionne et a seulement 15 caractères, mais consomme un peu de mémoire.
ivzem


14

x86. Exécutable, 5 octets

sortie sans fin de jeux de caractères ASCII

en hex:

40 CD 29 FF E6

en asm:

inc ax
int 0x29
jmp si

Explication:

inc axincrémente le registre AX de un. int 0x29est la routine "fast put char" de MSDOS, qui affiche simplement la valeur en AL (partie basse de AX) et avance le curseur de un. jmp sic’est un moyen bizarre de revenir en arrière, car le registre SI a la valeur 0x100 sur presque tous les systèmes d’exploitation de type DOS, qui est également le lieu de démarrage du programme .com;) Il est également possible de faire un saut bref, ce qui utilise 2 octets.

Sources:

Valeurs de départ MSDOS

Wiki de taille


13

Bitxtreme , 0,25 octet

Représentation binaire:

00

De la documentation:

Le premier bit de chaque paire est un pointeur sur la position de mémoire qui contient la valeur à soustraire de l'accumulateur. Le résultat est stocké dans la même position de mémoire pointée par l'opérande. Si le résultat est négatif (les bits sont dans la représentation du complément à deux), le deuxième bit de la paire sera ajouté au PC actuel, modulo 2.

Le compteur de programme et l'accumulateur sont initialisés à zéro; ensuite, le contenu de l'emplacement de mémoire 0 est soustrait de l'accumulateur. Cela arrive à 0, laissant l'accumulateur à zéro. Comme il n'y avait pas de retenue, le deuxième bit n'est pas ajouté au compteur de programme.

Le compteur de programme est ensuite incrémenté de 2 modulo 2, le renvoyant au début et provoquant une boucle infinie. A chaque étape, l'emplacement de mémoire spéciale 0 est modifié, ce 0qui entraîne l'écriture de son contenu (a ) dans la sortie.

On peut faire valoir que ce programme devrait être évalué à 1 octet, car l'interprète officiel en Python exige la mise à zéro. Cependant, je ne pense pas que le zéro-padding soit vraiment du code .


12

Résumé: Ruby - 9, Golfscript - 6,> <> - 2, espaces blancs - 19, Perl - 2

Une langue que je connais et deux que je n’avais jamais utilisée auparavant: D
EDIT: Perl n’a pas fonctionné lorsque j’ai installé Perl pour l’essayer :(

Rubis, 9

loop{p 1}

Imprime simplement 1 sur des lignes séparées en continu.

En outre, un tas d'alternatives:

loop{p''} # prints [ "" ]  on separate lines continually
loop{p p} # prints [ nil ] on separate lines continually

Solution à 10 caractères:

p 1while 1

En fait, j’ai été surpris de pouvoir supprimer l’espace entre le premier 1et le premier while, mais apparemment cela fonctionne.

Golfscript, 6

{1p}do

Mon premier programme Golfscript! : P

> <> ( Poisson ), 2

1n

Espaces blancs , 19

lssslssstltlsslslsl

sreprésente un espace, treprésente un onglet et lun saut de ligne.


11
Chaque fois que quelqu'un tape les mots: "Je n'ai pas Perl", Dieu tue un chaton.
Primo

2
@primo: P bien au moins maintenant je le fais.
Poignée de porte

2
C'est du code golf. Veuillez créer une réponse par soumission.
JB

21
@primo Bien, je déteste les chats. Et je n'ai pas Perl.
SQB

5
Le programme GS {1p}doimprime 1et ferme uniquement , car do est une séquence exec-pop-test qui continue uniquement si elle est vérifiée. (Comme il n'y a pas d'entrée, la pile est initialement "", ce qui, après l'exécution de 1p, est sauté et teste false.) Le simple ajout d'un dup marchera cependant, c'est {1.p}do-à- dire (à 7 octets).
res

12

C, 25 24

main(){main(puts("1"));}

4
s/while/main/
Ugoren

2
Je ne suis pas sûr qu'il existe une exception stackoverflow en C, mais quelque chose de grave se produira si vous manquez de mémoire.
Ilya Gazman

9
Optimisation des appels en attente ftw.
Johannes Kuhn

4
@JohannesKuhn: ce n'est pas un coup de queue. Si cela avait été return main(puts("1"))alors c'était un coup de queue.
marinus

4
@psgivens. Dans ca la fonction sans aucun paramètre peut prendre n'importe quelle quantité de paramètres. Seule une signature de methodName(void)accepte exactement zéro paramètre.
James Webster

12

> <> (Poisson) , 2

Une façon créative d'utiliser l'infini codebox de fish:

"o

Comme le pointeur d’instruction revient au début de la ligne après avoir atteint la fin, ce code peut essentiellement être lu comme suit:

"o"o

ce qui signifie 'lire la chaîne "o" puis la sortir ".

Vous pouvez tester le code ici


11

perl, 10 caractères

Voici une autre solution Perl 10 caractères avec des compromis différents. Plus précisément, il n'est pas nécessaire que l'indicateur -n ou l'entrée utilisateur soit démarré. Cependant, il continue à manger de la mémoire à l'infini.

warn;do$0

enregistrer dans un fichier, exécutez ce fichier et vous obtenez par exemple:

Warning: something's wrong at /tmp/foo.pl line 1.
Warning: something's wrong at /tmp/foo.pl line 1.
Warning: something's wrong at /tmp/foo.pl line 1.

Ne pourriez-vous pas rendre cela plus court en utilisant say(qui imprime toujours une nouvelle ligne même si elle ne peut pas trouver un argument de n'importe où) plutôt que warn? (Cela nécessite l'utilisation d'une variante moderne de Perl -M5.010, mais cela ne compte pas dans le nombre de vos personnages.)

10

dc , 7

[pdx]dx

affiche 'pdx \ n' infiniment de fois.


10

VBA: 12

Le son est sorti, non?

do:beep:loop

Mettez cela dans le fichier MS Office favori de votre collègue "favori" compatible macro pour un peu de "plaisir"!

Private Sub Workbook_Open()
    Do:Beep:Loop
End Sub

Des points bonus s'ils utilisent des écouteurs.


Dang, je cherchais dans les réponses pour voir si quelqu'un avait déjà pensé à imprimer le caractère de cloche. +1
mbomb007

9

Graine , 4 octets

99 5

Essayez-le en ligne! Sorties 11infiniment

Génère le programme Befunge-98 suivant:

[glzgx"Lz^v*M7TW!4:wi/l-[, s44~s;|Sa3zb|u<B/-&<Y a@=nN>Nc%}"gq!kCW $1{2hyzABRj*glr#z(@Zx@xT=>1'.b
/

Essayez-le en ligne!


La partie pertinente est juste ceci:

[>1'.b
/

bpousse 11sur la pile et l’ .imprime. 1et 49sont également poussés à la pile, mais jamais réellement imprimés.

Animation du code en cours d'exécution:

entrez la description de l'image ici


1
Est-ce que cela ne manquera pas de mémoire si des valeurs sont continuellement placées dans la pile sans être sautées?
Caird coinheringaahing

8

C, 26 25 24 (pas de récursivité)

main(){for(;;puts(""));}

Imprime des '\n'caractères sans fin . Il s'agit d'un octet plus long que la réponse C la plus courte, mais ne repose pas sur l'optimisation des appels de fin de ligne pour éviter le débordement de la pile.


2
Vous pouvez raser un personnage en utilisant for(;;)à la place dewhile(!
Alex Gittemeier

1
non !car il continue à produire\n
l4m2

7

R, 13 caractères

repeat cat(1)

repeat cat(1)devrait fonctionner
Dason

@Dason tu as raison. Je ne sais pas pourquoi je tiens à les mettre à chaque fois.
Plannapus

7

PowerShell 2.0: 17 11 8

Ma solution initiale:

while(1 -eq 1){1}

Merci à res:

while(1){1}

Je pense que Danko Durbić a le gagnant, ici. Je ne sais même pas pourquoi cela devrait fonctionner, mais ça marche et je ne peux penser à rien de plus court jusqu'à présent.

for(){1}

1
Essayez while(1){1}.
res

@res J'allais le couper par deux avec while($true){1}mais votre solution gagne définitivement - je l'avais oublié dans PowerShell $true -eq 1. Postez cela comme une réponse, et je vous donnerai un vote.
Iszi

N'hésitez pas à l'éditer dans le vôtre, si vous le souhaitez.
res

6
Essayez for(){1}.
Danko Durbić

@ DankoDurbić Pouvez-vous expliquer pourquoi cela fonctionne? Je ne comprends pas très bien. Il semble que ce soit une erreur pour moi.
Iszi
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.