143
\$\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>

\$\endgroup\$
16
  • 138
    \$\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, 2013 at 20:00
  • 24
    \$\begingroup\$ Does "infinite until your computer crashes" count? <_< \$\endgroup\$
    – Izkata
    Nov 10, 2013 at 1:39
  • 6
    \$\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, 2013 at 20:27
  • 10
    \$\begingroup\$ @Izkata So any answer that crashes your computer is also allowed :D \$\endgroup\$ Jul 11, 2014 at 20:11
  • 9
    \$\begingroup\$ @Doorknob So really, the challenge is to produce infinite output in a finite amount of time. Sounds easy enough. \$\endgroup\$
    – Sanchises
    Apr 10, 2015 at 21:15

324 Answers 324

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

Stax, 3 bytes

W1P

Run and debug it

Outputs 1 forever. Since Stax terminates when trying to peek or pop an empty stack, I am not sure how to do it in 2 bytes or less.

\$\endgroup\$
2
  • \$\begingroup\$ Since W1Q also works and differs in only the final bit, the first 23 bits of this work regardless of the 24th; could it be claimed that this is 2.875 bytes? Is this a dumb question? \$\endgroup\$ Apr 6, 2018 at 11:21
  • \$\begingroup\$ Interesting idea, but I honestly don't know. Sadly W1Q will stack overflow after some time ... \$\endgroup\$ Apr 7, 2018 at 0:30
0
\$\begingroup\$

ORK, 170 bytes

There is such a thing as a o
A o can i

When a o is to i:
I have a scribe called W
W is to write "!"
I am to loop

When this program starts:
I have a o called O
O is to i

Try it online!

Objects R Kool. Maybe, but they're inconvenient (why can't I just loop the main function?).

\$\endgroup\$
0
\$\begingroup\$

Burlesque - 2 bytes

bc

bc box cycle

Rather boring. bc encloses the top of the stack in a block and then infinitely repeats this block and thus when the value is printed when the program stops it'll obviously never stop producing output.

\$\endgroup\$
0
\$\begingroup\$

MathGolf, 4 3 bytes

Äo↔

Try it online!

Explanation

Ä     start block of length 1
 o    print TOS without popping
  ↔   do while false without popping
\$\endgroup\$
0
\$\begingroup\$

JavaScript + HTML, 56 bytes

(g=_=>requestAnimationFrame(_=>document.writeln(g())))()
\$\endgroup\$
0
\$\begingroup\$

Turing Machine But Way Worse, 13 bytes

0 0 1 1 0 1 0

Try it online!

prints chr(128),chr(128+64),chr(128+64+32),...,chr(128+64+...+2+1) infinitely.

No explanation since the code is self-explanatory.

\$\endgroup\$
0
\$\begingroup\$

JVM bytecode (OpenJDK asmtools JASM), 194 bytes

enum i {public static Method main:"([Ljava/lang/String;)V" stack 2 locals 1 {l:getstatic java/lang/System.out:"Ljava/io/PrintStream;";ldc 0;invokevirtual java/io/PrintStream.print:(I)V;goto l;}}

Ungolfed

enum i {
    public static Method main:"([Ljava/lang/String;)V" stack 2 locals 1 {
    l:
        getstatic java/lang/System.out:"Ljava/io/PrintStream;";
        ldc 0;
        invokevirtual java/io/PrintStream.print:(I)V;
        goto l;
    }
}

First we get a reference to System.out, then we just invoke void print(int) with zero. Repeat until the heat death of the universe, since this method never returns.

Using enum instead of class saves 1 byte, along with using ldc 0 instead of iconst_0 to save 2 more bytes.

Bonus points for not decompiling correctly in the Fernflower decompiler, no?

\$\endgroup\$
0
\$\begingroup\$

Python: (16 characters)

while 1:print(0)
\$\endgroup\$
5
  • 2
    \$\begingroup\$ I don't believe you need the parentheses around the 1. while 1:print(0) should work just fine. \$\endgroup\$
    – Wheat Wizard
    Feb 14, 2019 at 20:30
  • \$\begingroup\$ You can also save a byte on the print by using python 2 \$\endgroup\$
    – Beefster
    Feb 14, 2019 at 21:34
  • 1
    \$\begingroup\$ you don't even need the 0 since python prints a newline \$\endgroup\$
    – Jo King
    Feb 14, 2019 at 22:11
  • \$\begingroup\$ You are right @Joking. New line is invisible output. \$\endgroup\$ Feb 14, 2019 at 22:14
  • \$\begingroup\$ while 1:print() would print a newline \$\endgroup\$
    – MilkyWay90
    Mar 3, 2019 at 17:45
0
\$\begingroup\$

Tamsin, 15 bytes

main={print 1}.

Try it online!

\$\endgroup\$
0
\$\begingroup\$

Perl 6, 11 bytes

loop {.say}

Try it online!

\$\endgroup\$
0
\$\begingroup\$

Brian & Chuck, 8 bytes

!{?
!{.?

Try it online!

Brian simply restarts Chuck and Chuck sets Brian's instruction pointer to the left end, prints it and restarts Brian.

Produces endless "!!!!!!..."

\$\endgroup\$
0
\$\begingroup\$

Brain-Flak, 10 bytes

(()){(())}

Try it online!

I don't know if this counts as a valid answer because Brain-Flak prints the contents of the active stack and this code just fills the stack.

(())    push 1 on stack
{       while top of stack != 0
  (())  push 1 on stack
}
\$\endgroup\$
0
\$\begingroup\$

Lua, 18 bytes

::a::print()goto a

Try it online!

Shortest I was able to came up with (beats any loop). Prints newlines forever.

\$\endgroup\$
0
\$\begingroup\$

MarioLANG, 7 bytes

>:<
===

Try it online!

Infinitely prints zeroes; not much else to say about it.

\$\endgroup\$
2
  • \$\begingroup\$ I've been reading trough the answers here and I'm sure I've seen the 100% identical one. \$\endgroup\$ Aug 21, 2020 at 11:52
  • \$\begingroup\$ I do see an identical one now that you mention it, but I also see its post date being 9 days after mine, unless there's a third somewhere. \$\endgroup\$
    – squid
    Aug 23, 2020 at 7:31
0
\$\begingroup\$

Element, 5 bytes

!{A`]

This outputs A to the console forever.

TIO

\$\endgroup\$
0
\$\begingroup\$

AlphaBeta, 2 bytes

MN

Try it online!

Outputs infinite null bytes.

Explanation

   # All registers are initialized to 0
M  # Output the number in register 3
 N # If register 3 is 0, goto the position at the position register.
\$\endgroup\$
0
\$\begingroup\$

Brainetry --live-output, 55 bytes

Uses the --live-output flag, otherwise output to the console would be deferred to the end of the program, which never happens because we have an infinite loop going on.

a b c d
a b c d e f g h
a b c d e f g
a b c d e f g h i

This is a golfed version of this program:

Lets produce infinite output.
This is really simple, all it takes is:
A cell with a non zero value
and the --live-output flag also needs to be on.

If you want to try this, clone the linked github repo and run python brainetry.py btry/infinite_output.btry --live-output.

\$\endgroup\$
0
\$\begingroup\$

C, 29 28 26 23 bytes

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

-2 @steadybox

-3 @rtpatx

gcc won't like it, but it compiles.

Outputs null bytes continuously. You can swap out the 0 for anything 0-9.

You can use 7 if you really hate your speakers.

\$\endgroup\$
3
  • \$\begingroup\$ 26 bytes: main(){for(;;)putchar(0);} \$\endgroup\$
    – Steadybox
    Dec 25, 2017 at 1:55
  • \$\begingroup\$ Suggestion coming a long time later, 23 bytes main(){main(puts(""));} \$\endgroup\$
    – rtpax
    Jun 24, 2020 at 19:17
  • \$\begingroup\$ @rtpatx nice! Editing. \$\endgroup\$ Jun 24, 2020 at 19:51
0
\$\begingroup\$

Common Lisp, 15 bytes

(loop(princ'x))

Try it online!

\$\endgroup\$
0
\$\begingroup\$

Knight, 4 bytes

W1O1

Try It Online!

Prints 1 forever.

\$\endgroup\$
0
\$\begingroup\$

Pyth, 4 bytes

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

.V"0

Explanation:
.V   - Forever loop
  "0 - Outputs zeros
\$\endgroup\$
1
  • \$\begingroup\$ This can be golfed to #0 \$\endgroup\$
    – Blue
    Feb 20, 2016 at 12:56
0
\$\begingroup\$

BitCycle, 6 bytes

!~<
1^

Inspired by emanresu A's suggested golf to des54321's answer. Similarly to that answer, this outputs alternating 0s and 1s.

Try it here!

Explanation

The initial 1 bit is directed north into the dupneg (~). A negated copy (0) is sent west to the sink (!) and is output. A non-negated copy is sent east, whereupon it is immediately directed west again back into the dupneg. Now the original copy is sent north and leaves the playfield, while the negated copy is sent south, redirected north again, and the cycle continues forever (with the bit changing parity each time).

\$\endgroup\$
0
\$\begingroup\$

Röda, 12 bytes

{[0]while{}}

This is an anonymous function that prints zeros infinitely.

\$\endgroup\$
-1
\$\begingroup\$

C# (72)

using System; class P {static void Main(){for(;;) Console.Write('-');}}

Output enter image description here

\$\endgroup\$
2
  • 8
    \$\begingroup\$ This can easily be shortened to: class P{static void Main(){for(;;System.Console.Write(1));}} (60); if you insist on - to be outputted it would be 62 (replacing 1 with "1"). \$\endgroup\$
    – RobIII
    May 2, 2014 at 12:31
  • 3
    \$\begingroup\$ I have no idea how to code in C# but I can still golf this" class P{static void main{for(;;) Console.Write(0);}} \$\endgroup\$
    – MilkyWay90
    Feb 13, 2019 at 1:52
1
7 8 9 10
11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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