126
\$\begingroup\$

Write the shortest code you can that produces an infinite output.

That's all. You code will only be disqualified if it stops producing output at some point. As always in code golf, the shortest code wins.

Here's a list of answers that I think are really clever, so they can get credit:

Leaderboard

var QUESTION_ID=13152,OVERRIDE_USER=8611;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>

| improve this question | | | | |
\$\endgroup\$
  • 122
    \$\begingroup\$ All answers disqualified because at some point the Earth will be swallowed by the sun, and at some point the universe will die :P \$\endgroup\$ – Doorknob Nov 9 '13 at 20:00
  • 18
    \$\begingroup\$ Does "infinite until your computer crashes" count? <_< \$\endgroup\$ – Izkata Nov 10 '13 at 1:39
  • 5
    \$\begingroup\$ If I write mine in Piet, can I count the pixels of the text the other programs used? I believe the smallest possible repeating Piet program would be 6 pixels. That beats Befunge if "off" pixels still count. \$\endgroup\$ – DampeS8N Nov 12 '13 at 20:27
  • 9
    \$\begingroup\$ @Izkata So any answer that crashes your computer is also allowed :D \$\endgroup\$ – ɐɔıʇǝɥʇuʎs Jul 11 '14 at 20:11
  • 7
    \$\begingroup\$ @Doorknob So really, the challenge is to produce infinite output in a finite amount of time. Sounds easy enough. \$\endgroup\$ – Sanchises Apr 10 '15 at 21:15

277 Answers 277

1
6 7
8
9 10
0
\$\begingroup\$

C, 25 bytes

main(){while(puts("1"));}
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

R, 15 bytes

Infinitely prints 1

while(T)cat(1)
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Pyth, 4 bytes (Non-competing)

Pyth is a new programming lenguage, so this answer doesn't count.

.V"0

Explanation:
.V   - Forever loop
  "0 - Outputs zeros
| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ You should add a note to your title saying this is non-competing because the language is newer than the question. Also this can be golfed to #0 \$\endgroup\$ – Blue Feb 20 '16 at 12:56
0
\$\begingroup\$

ForceLang, 23 bytes

label l
io.write goto l

Looks weird, but it works. The key here is that goto does not interrupt the evaluation of the current line, and returns nil.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Pylons, 5

wp,1}

While 1, print the (empty) stack.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Come Here, 21 bytes

COME FROM1 1TELL1NEXT

In the reference implementation, this prints infinitely many smiley characters. Don't ask me why.

| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ The smiley characters are printed because you are using Windows cmd. \$\endgroup\$ – Erik the Outgolfer Oct 6 '16 at 18:58
0
\$\begingroup\$

Clojure, 14 bytes

(pr(cycle[1]))
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Brainfuck, 26 bytes

++++[>++++<-]>[>++<-]>+[.]

Do 4*4*2+1 (33, !) and the final loop is a infinite loop that only print the current memory cell (!).

| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ You could as well do +[.] (SOH), but then it would be a dupe. \$\endgroup\$ – Erik the Outgolfer Oct 8 '16 at 18:12
0
\$\begingroup\$

Haystack, 6 bytes (non-competing, the language came 2 years after the challenge)

>"a"o<

This will print a [infinity] times.

If the above code gives a syntax error because of the lack of | (that character is the needle. The ultimate goal of all Haystack programs is to find the needle in the haystack), one can simply append it to the end:

>"a"o<|
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Golfscript - 7

{1a}:a~

I'm still learing golfscript, but unless I'm mistaken, this puts 1 on the stack, then starts over?

But apparently, the stack only prints when the program terminates, so perhaps this is better:

{1.p}do

(thanks Dennis)

| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ You need a space between 1 and a, otherwise it's a single variable. I suggest using a non-alnum as a variable name {1?}:?+. Also, this doesn't print anything. \$\endgroup\$ – John Dvorak Mar 4 '14 at 5:31
  • 1
    \$\begingroup\$ This won't work, it will just print a stack level too deep error. Also, the stack is printed when the program finishes, so you have to print explicitly. Example: {1.p}do (7 bytes) @JanDvorak: [A-Za-z]+[0-9]+ is a single token, but [0-9]+[A-Za-z]+ is not. \$\endgroup\$ – Dennis Jun 21 '14 at 18:46
  • \$\begingroup\$ I would downvote, but my vote is locked in. Help me out! \$\endgroup\$ – tbodt Sep 3 '14 at 21:54
  • \$\begingroup\$ Edited as per @Dennis \$\endgroup\$ – McKay Sep 7 '16 at 21:42
0
\$\begingroup\$

PHP, 9 chars

for(;;)a;

Assumes error_reporting includes notices, and you can run it like this:

php -r "for(;;)a;"

The output is the following (repeated until the script is stopped):

PHP Stack trace:
PHP   1. {main}() Command line code:0
PHP Notice:  Use of undefined constant a - assumed 'a' in Command line code on line 1

Note: 11 characters if code is written in a file: <?for(;;)a;

| improve this answer | | | | |
\$\endgroup\$
  • 3
    \$\begingroup\$ Php is not that bad :) <?for(;;a); 11 chars \$\endgroup\$ – tacone Nov 30 '13 at 22:01
  • 1
    \$\begingroup\$ This assumes not only that E_NOTICE is enabled, but also that display_errors is set to STDOUT - no one in their right mind does this. \$\endgroup\$ – primo Feb 2 '14 at 7:17
  • \$\begingroup\$ @primo I do lol \$\endgroup\$ – Oliver Ni Aug 6 '17 at 12:02
0
\$\begingroup\$

Ruby, 10 bytes

loop{puts}

This program prints out an infinite stream of newlines.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Kitanai, 24 bytes

#print"0"&2&1#print"1"&~

The "#" defines a flag, the first "print" displays 0, then the "&2" jumps to the second "#", it then prints "1", goes to the origin ("&~") which is just after "&2", then it jumps to the first "#" thanks to the "&1". And it does all that infinitely :)

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

FALSE, 8 bytes

Interpreter.

There are many programs that work, each 8 bytes. The one I find the most interesting is:

[1$][.]#

This is a while loop (#). [1$] is the condition, and it pushes two 1s. The last is popped for the condition (true), and then [.] is executed, which prints the number.

Here are some other programs (including the above):

[1$][.]#
[1][1.]#
[1$.][]#
[^^.][]#
[^.^][]#
[^][^.]#

A more interesting 9-byte (arbitrary 1-char repeated):

['c$,][]#

I feel that the following 7-byte programs should work on some FALSE interpreters, but I haven't found any such yet:

[1"][]#
[.1][]#
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Haxe, 19 bytes

while(1>0)trace(1);

There are several things about Haxe that make this challenge more difficult than in similar languages:

  1. Its lack of a for(;;) loop
  2. Its unwillingness to consider anything other than true or false truthy or falsy
  3. Its unwillingness to print an empty line (with trace();)

If not for these things, this program might have been 15 bytes:

for(;;)trace();

Test it online here, though you may not want to, as it freezes your browser.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Pushy, 3 bytes

(Non-competing as language post-dates challenge)

3[_

Explanation:

3 \ pushes 3 to the stack

[ \ starts an infinite loop

_ \ prints out the contents of the stack
| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ [" Infinitely prints newlines (and you need to mark this answer as non-competing) \$\endgroup\$ – FlipTack Jan 22 '17 at 15:55
0
\$\begingroup\$

C++, 23 bytes

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

I was too lazy, but hey, It outputs a javascript script, which does absolutely nothing!

| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ This submission is neither a full program nor a function and thus is invalid (since snippets are disallowed). \$\endgroup\$ – user41805 Jan 23 '17 at 16:36
  • 1
    \$\begingroup\$ Now with FULL program! \$\endgroup\$ – Matthew Roh Jan 23 '17 at 23:40
0
\$\begingroup\$

QC 6 bytes

Not competing because language is newer than the question

A00$00

A00 prints nothing(because memory is empty) and a new line
$00 jump to start(no recursion, sets instruction pointer to 00)
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Fith, 16 bytes

{ 1 . q } :: q q

{ 1 . q } pushes to the stack an anonymous function which prints 1 then calls a function named q. :: q binds this function to the word q, then the final q calls the new infinitely-recursing function.

Non-recursive version (19 bytes):

{ 1 } { 1 . } while

This pushes a condition function, which will always push 1, and a body function, which prints 1. The while word continues to run the body as long as the condition leaves a truthy value on top of the stack.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Röda, 12 bytes (non-competing)

{[0]while{}}

This is an anonymous function that prints zeros infinitely.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Whitespace, 16 bytes




	
 	



Try it online!

Saves 3 bytes on the previous Whitespace answer by abusing empty labels and declaring the value 0 as a 0-bit number (the spec unfortunately requires a sign bit). Posting as a new answer as the previous answer combines multiple unrelated entries.

Explanation

(s - space, t - tab, n - newline)

nssn # Declare label ''
sssn # Push +0 onto the stack
tnst # Pop and output the stack value as a number - outputs the character '0'
nsnn # Jump to label ''
| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ I'm kinda pleased that this answer uses four 4-byte instructions \$\endgroup\$ – Ephphatha May 27 '17 at 13:23
0
\$\begingroup\$

shortC, 5 bytes

AWP'1

Prints 1 forever. Explanation:

A     main function
 W    forever
  P   print char
   '1 char '1'

Try it online!

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Fission 2, 2 bytes

R"

Try it online!

Same concept as the Befunge answer. An atom is spawned at the R, and moves right. It reaches the " and enters string mode, wraps to the beginning of the line and prints an R, then exits string mode and wraps again.

Outside of string mode, R simply changes the atom's direction to right, which is the direction it's already moving in.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Add++, 9 bytes

+1
W,+1,O

Prints 1 Followed by a newline for ever.

Try it online!

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

AHK, 11 bytes

Loop
Send,a

Pretty boring but couldn't find an AHK answer in here and thought it worthy of submission.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Bitwise, 19 bytes

OUT 0 &1
JMP &-2 &1

Prints a load of null bytes. Try it online!

OUT 0 &1 prints the 0th register when a literal 1 is truthy. JMP &-2 &1 jumps back two (one) lines when a literal 1 is truthy.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Evil, 4 bytes

Continuously prints the Start of Heading character:

amwb

If NUL is allowed you could do mwb.

An alternative, that goes through the ASCII characters, would be:

mawb

Quick explanation of commands:

  • m = marking character;
  • a = increment accumulator;
  • w = write accumulator to STDOUT;
  • b = go backwards to marking character and continue execution from there.
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

J-uby, 11 Bytes

-:p|:+&1!~0

Explanation

!~ is iterate until constant: x = f(x) until x == f(x)

-:p is the global print function, and :+&1 increments a number

So -:p|:+&1 prints a number and returns the next integer

We start at 0

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

VBA, 18 Bytes

Anonymous VBE immediate window that outputs an infinite quantity of newline characters vbCrLf to the VBE immediate window

Do:DoEvents:?:Loop
| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

VBScript, 23 characters

Do:Wscript.Echo"C":Loop

Needs to be run with cscript.exe for command-line output. If run with wscript.exe (default action), it opens infinite dialog boxes.


Also, here's a shorter (17 character) version which opens boxes regardless of whether it's running using cscript.exe or wscript.exe.

Do:MsgBox"C":Loop

However I'm not sure if that counts too, as it doesn't print anything and just opens dialog boxes indefinetely.

| improve this answer | | | | |
\$\endgroup\$
1
6 7
8
9 10

Not the answer you're looking for? Browse other questions tagged or ask your own question.