# Shortest code to produce infinite output

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:

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>

• All answers disqualified because at some point the Earth will be swallowed by the sun, and at some point the universe will die :P – Doorknob Nov 9 '13 at 20:00
• Does "infinite until your computer crashes" count? <_< – Izkata Nov 10 '13 at 1:39
• 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. – DampeS8N Nov 12 '13 at 20:27
• @Izkata So any answer that crashes your computer is also allowed :D – ɐɔıʇǝɥʇuʎs Jul 11 '14 at 20:11
• @Doorknob So really, the challenge is to produce infinite output in a finite amount of time. Sounds easy enough. – Sanchises Apr 10 '15 at 21:15

## C, 25 bytes

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


## R, 15 bytes

Infinitely prints 1

while(T)cat(1)


# 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

• 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 – Blue Feb 20 '16 at 12:56

# 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.

# Pylons, 5

wp,1}


While 1, print the (empty) stack.

# Come Here, 21 bytes

COME FROM1 1TELL1NEXT


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

• The smiley characters are printed because you are using Windows cmd. – Erik the Outgolfer Oct 6 '16 at 18:58

## Clojure, 14 bytes

(pr(cycle[1]))


## Brainfuck, 26 bytes

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


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

• You could as well do +[.] (SOH), but then it would be a dupe. – Erik the Outgolfer Oct 8 '16 at 18:12

# 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<|


# 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)

• 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. – John Dvorak Mar 4 '14 at 5:31
• 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. – Dennis Jun 21 '14 at 18:46
• I would downvote, but my vote is locked in. Help me out! – tbodt Sep 3 '14 at 21:54
• Edited as per @Dennis – McKay Sep 7 '16 at 21:42

## 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;

• Php is not that bad :) <?for(;;a); 11 chars – tacone Nov 30 '13 at 22:01
• 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. – primo Feb 2 '14 at 7:17
• @primo I do lol – Oliver Ni Aug 6 '17 at 12:02

## Ruby, 10 bytes

loop{puts}


This program prints out an infinite stream of newlines.

# 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 :)

# 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][]#  # 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. # 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  • [" Infinitely prints newlines (and you need to mark this answer as non-competing) – FlipTack Jan 22 '17 at 15:55 # C++, 23 bytes main(){for(;;)puts(";");}  I was too lazy, but hey, It outputs a javascript script, which does absolutely nothing! • This submission is neither a full program nor a function and thus is invalid (since snippets are disallowed). – user41805 Jan 23 '17 at 16:36 • Now with FULL program! – Matthew Roh Jan 23 '17 at 23:40 # 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


# 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.

# Röda, 12 bytes (non-competing)

{[0]while{}}


This is an anonymous function that prints zeros infinitely.

# 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'

• I'm kinda pleased that this answer uses four 4-byte instructions – Ephphatha May 27 '17 at 13:23

# shortC, 5 bytes

AWP'1


Prints 1 forever. Explanation:

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


Try it online!

# 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.

+1
W,+1,O


Prints 1 Followed by a newline for ever.

Try it online!

# AHK, 11 bytes

Loop
Send,a


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

# 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.

## 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.

# 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

# VBA, 18 Bytes

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

Do:DoEvents:?:Loop


# 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.