My father who was a really good APLer and taught me all the basics of APL (and much more), passed away on this day, five years ago. In preparation for 50 Years of APL, I found this patent letter (translated for the convenience of those who do not read Danish) for a handwritten logo. It explains a major reason for APL never gaining a large user base – a reason which of course applies to all of this community's amazing golfing languages too:
A 3497/77 Req. 29th Aug. 1977 at 13
EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS ...
Henri Brudzewsky, engineering consultancy company, Mindevej 28, Søborg,
class 9, including computers, especially APL coded computers,
class 42: IT service agency company, especially during use of APL coded computers.
Task
Produce infinitely repeating output of the text EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS with no newlines. You may begin the text with EASIER or FASTER or FEWER.
-
4\$\begingroup\$ I misinterpreted your challenge and what I did was i.imgur.com/qKnTj3q.png ! \$\endgroup\$sergiol– sergiol2017年11月12日 00:14:48 +00:00Commented Nov 12, 2017 at 0:14
-
\$\begingroup\$ @sergiol Almost valid over here. \$\endgroup\$Adám– Adám2017年11月12日 00:23:51 +00:00Commented Nov 12, 2017 at 0:23
-
\$\begingroup\$ Link to patent letter is dead. \$\endgroup\$The Fifth Marshal– The Fifth Marshal2019年10月20日 04:24:34 +00:00Commented Oct 20, 2019 at 4:24
-
\$\begingroup\$ @pppery Thanks. Updated. \$\endgroup\$Adám– Adám2019年10月20日 12:32:22 +00:00Commented Oct 20, 2019 at 12:32
-
1\$\begingroup\$ @Shaggy yes, it has to be as-is; upper. \$\endgroup\$Adám– Adám2024年08月15日 17:26:55 +00:00Commented Aug 15, 2024 at 17:26
48 Answers 48
SVG(HTML5), 336 bytes
<svg width=500 height=500><defs><path id=p d=M49,250a201,201,0,0,1,402,0a201,201,0,0,1,-402,0></defs><text font-size="32"><textPath xlink:href=#p>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS</textPath><animateTransform attributeName=transform type=rotate from=360,250,250 to=0,250,250 dur=9s repeatCount=indefinite>
Edit: Some people have found that the font doesn't quite fit for them so here is a version that allows you a few pixels of adjustment:
<p><input type=number value=0 min=0 max=9 oninput=p.setAttribute('d','M250,250m20_,0a20_,20_,0,1,1,-20_,-20_a20_,20_,0,1,1,-20_,20_a20_,20_,0,1,1,20_,20_a20_,20_,0,1,1,20_,-20_'.replace(/_/g,this.value))></p>
<svg width=500 height=500><defs><path id=p d=M250,250m200,0a200,200,0,1,1,-200,-200a200,200,0,1,1,-200,200a200,200,0,1,1,200,200a200,200,0,1,1,200,-200></defs><text font-size="32"><textPath xlink:href=#p>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS</textPath><animateTransform attributeName=transform type=rotate from=360,250,250 to=0,250,250 dur=9s repeatCount=indefinite>
-
\$\begingroup\$ This is beautiful, but can you make it inside out (top of letters facing out from the circle) and all uppercase? \$\endgroup\$Adám– Adám2017年05月07日 15:38:42 +00:00Commented May 7, 2017 at 15:38
-
\$\begingroup\$ @Adám How's this? I've had to tweak the dimensions slightly but it's the same byte count. \$\endgroup\$Neil– Neil2017年05月07日 16:24:00 +00:00Commented May 7, 2017 at 16:24
-
1\$\begingroup\$ @Adám, you should; that's what I thought this challenge was going to be when I first read it. \$\endgroup\$Shaggy– Shaggy2017年05月07日 18:25:56 +00:00Commented May 7, 2017 at 18:25
-
8\$\begingroup\$ There's a space missing in "MEANSEASIER", which is present between other words. \$\endgroup\$ShreevatsaR– ShreevatsaR2017年05月08日 01:58:18 +00:00Commented May 8, 2017 at 1:58
-
1\$\begingroup\$ @ShreevatsaR I've added a second version which includes a textbox for making small adjustments, maybe that helps. \$\endgroup\$Neil– Neil2017年05月08日 12:27:52 +00:00Commented May 8, 2017 at 12:27
05AB1E, 25 bytes
[‘æƒËRSˆ3⁄4\ƒŽÁˆ3⁄4¡ŸÂïˆ3⁄4 ‘?
Explanation:
[‘æƒËRSˆ3⁄4\ƒŽÁˆ3⁄4¡ŸÂïˆ3⁄4 ‘?
[ Start infinite loop
‘æƒËRSˆ3⁄4\ƒŽÁˆ3⁄4¡ŸÂïˆ3⁄4 ‘ Push the compressed string in uppercase, starting from FEWER, with a trailing space
? Print without trailing newline
-
14\$\begingroup\$ Honestly, I don't understand why Python solutions get explanations and this one doesn't. What in the world is happening here? \$\endgroup\$nluigi– nluigi2017年05月07日 20:39:46 +00:00Commented May 7, 2017 at 20:39
-
3\$\begingroup\$ @nluigi black magic \$\endgroup\$Nic Robertson– Nic Robertson2017年05月07日 22:10:27 +00:00Commented May 7, 2017 at 22:10
-
2\$\begingroup\$ It's physically impossible to know what is going on here if you don't know the language, would you mind giving an explanation please. \$\endgroup\$George Willcox– George Willcox2017年05月08日 07:23:46 +00:00Commented May 8, 2017 at 7:23
-
1\$\begingroup\$ @nluigi The
[means 'start of infinite loop', the‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘is a compressed version ofEASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS, and?means print without newline. \$\endgroup\$Okx– Okx2017年05月08日 10:35:36 +00:00Commented May 8, 2017 at 10:35 -
1\$\begingroup\$ @Leo That's greatly under-explained. First, you go to this file. To the right of some of the extended characters, you can see a number. If it's one-digit, pad with a leading zero. Two such chars form a 4-digit number with possible leading zeroes. Then, this number is used as an zero-based index to this dictionary. The behavior of each word then depends on the quotes, which you can find on the first file I linked by searching for
compressed. \$\endgroup\$Erik the Outgolfer– Erik the Outgolfer2017年05月08日 12:14:45 +00:00Commented May 8, 2017 at 12:14
PHP, 76 Bytes
for(;;)echo strtr(EASI0MMUNICATION1FAST0DING1FEW0DERS1,["ER CO"," MEANS "]);
-
4\$\begingroup\$ Only in PHP.... \$\endgroup\$Stack Exchange Broke The Law– Stack Exchange Broke The Law2017年05月08日 04:18:50 +00:00Commented May 8, 2017 at 4:18
-
\$\begingroup\$ @immibis What do you mean? \$\endgroup\$Jörg Hülsermann– Jörg Hülsermann2017年05月08日 08:55:05 +00:00Commented May 8, 2017 at 8:55
-
\$\begingroup\$ I mean you managed to demonstrate at least 3 PHP "design quirks" in one line of code. This line of code is an illustration of why PHP is considered harmful. \$\endgroup\$Stack Exchange Broke The Law– Stack Exchange Broke The Law2017年05月08日 09:07:53 +00:00Commented May 8, 2017 at 9:07
-
1\$\begingroup\$ @immibis "mimimi don't like php" Thought we were past that point for like a decade. :-) \$\endgroup\$Zsolt Szilagy– Zsolt Szilagy2017年05月08日 15:40:10 +00:00Commented May 8, 2017 at 15:40
-
4\$\begingroup\$ @Arc676 First, a name without a dollar sign is assumed to be a constant. Second, an undefined constant is assumed to be itself as a string. So in this code
EASI0MMUNICATION1FAST0DING1FEW0DERS1is treated as the string"EASI0MMUNICATION1FAST0DING1FEW0DERS1". Third,strtrexpects an associative array (a "map" or "dictionary" in other languages), but this code passed in a regular array, so it treats the regular array as an associative array with keys 0 and 1. Finally, those integers 0 and 1 get treated as strings"0"and"1"because, you guessed it, the function needs strings. \$\endgroup\$wavemode– wavemode2017年05月09日 14:53:10 +00:00Commented May 9, 2017 at 14:53
Vim 69 bytes
qqAFEWER CODERS MEANS EASIER COMMUNICATION M<C-n> FASTER CODING M<C-n> <esc>@qq@q
-
\$\begingroup\$ I just love it when a straightforward Vim command sequence makes for a decent code golf solution. :-D \$\endgroup\$DevSolar– DevSolar2017年05月08日 09:05:09 +00:00Commented May 8, 2017 at 9:05
HTML, 122 bytes.
Sorry, can't help myself.
<marquee style="width:5em;word-spacing:5em;">EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS </marquee>
-
\$\begingroup\$ why the huge word spacing? \$\endgroup\$Adám– Adám2017年05月08日 19:53:42 +00:00Commented May 8, 2017 at 19:53
-
\$\begingroup\$ @Adám Because a marquee always leaves that amount of width between iterations (i.e. its own width). And I couldn't find a way to collapse that, so I had to improvise and put the same amount of space between each word as well. \$\endgroup\$Mr Lister– Mr Lister2017年05月08日 19:56:58 +00:00Commented May 8, 2017 at 19:56
-
\$\begingroup\$ Can't you remove the end tag? \$\endgroup\$NoOneIsHere– NoOneIsHere2017年11月12日 17:10:20 +00:00Commented Nov 12, 2017 at 17:10
-
\$\begingroup\$ @NoOneIsHere How would that help? Or did you mean it would golf it down by 10 bytes? I'm not sure I want to do that; the end tag is not actually optional. \$\endgroup\$Mr Lister– Mr Lister2017年11月12日 18:00:43 +00:00Commented Nov 12, 2017 at 18:00
-
\$\begingroup\$ @MrLister I meant golf it down. I thought single-tag HTML documents didn't need the end tag. \$\endgroup\$NoOneIsHere– NoOneIsHere2017年11月12日 18:49:05 +00:00Commented Nov 12, 2017 at 18:49
Python 2, (削除) 82 (削除ここまで) 81 bytes
-1 byte thanks to Leaky Nun.
I'm probably doing something wrong but it's really late so meh. Note the trailing comma.
while 1:print'FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS',
Another solution, 85 bytes
I can probably golf this further.
while 1:print'%sER CO%s MEANS'*3%('FEW','DERS',' EASI','MMUNICATION',' FAST','DING'),
-
1\$\begingroup\$ You can delete the second space. \$\endgroup\$Leaky Nun– Leaky Nun2017年05月07日 08:39:08 +00:00Commented May 7, 2017 at 8:39
-
\$\begingroup\$ @LeakyNun How did I miss that? o0 Thanks! \$\endgroup\$totallyhuman– totallyhuman2017年05月07日 08:42:14 +00:00Commented May 7, 2017 at 8:42
-
\$\begingroup\$ In the second one, you can move the spaces into the format string. \$\endgroup\$wizzwizz4– wizzwizz42017年05月07日 10:36:57 +00:00Commented May 7, 2017 at 10:36
-
\$\begingroup\$ @wizzwizz4 Leading whitespace is disallowed. \$\endgroup\$totallyhuman– totallyhuman2017年05月07日 14:23:58 +00:00Commented May 7, 2017 at 14:23
-
2\$\begingroup\$ @totallyhuman Currently, you have a bug where it will output "FEWER CODERS MEANSEASIER COMMUNICATION MEANSFASTER CODING MEANSFEWER...". If you change the format string to
'%sER CO%s MEANS 'and remove the spaces from the format items, it'll be golfier and work properly. \$\endgroup\$wizzwizz4– wizzwizz42017年05月07日 16:01:24 +00:00Commented May 7, 2017 at 16:01
Jelly, (削除) 33 (削除ここまで) 29 bytes
4 bytes thanks to Erik the Outgolfer.
"©%5ÐƬwȮh¬Þ6.7ḷḊḥṫɠlḶṀġß»Œu6¢
-
\$\begingroup\$ 1) You can use a better compressed string:
"©%5ÐƬwȮh¬Þ6.7ḷḊḥṫɠlḶṀġß»(still need to useŒuand;6) 2) You can useßinstead of1¿. \$\endgroup\$Erik the Outgolfer– Erik the Outgolfer2017年05月07日 07:28:46 +00:00Commented May 7, 2017 at 7:28
Brachylog, 70 bytes
"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "w↰
How it works
"..."w↰
"..." generate the string "..."
w print to STDOUT without trailing newline
↰ do the whole thing all over again
HTML/CSS (firefox only), (削除) 179 (削除ここまで) (削除) 177 (削除ここまで) (削除) 183 (削除ここまで) (削除) 176 (削除ここまで) 173 bytes
<b id=a>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS </b>E<a><style>*{margin:0;}a{position:fixed;left:0;right:0;height:1em;background:-moz-element(#a)}
Certianly nowhere near the lowest scores, I just thought it would be fun to get infinite repitition in HTML/CSS, without any JS involved :)
Changelog:
- Removed quotes around id attribute
- added "round" background-repeat to stretch the text so it wraps correctly
- changed to single-line output
- replace
width:100%style withright:0to save 3 bytes
-
\$\begingroup\$ Nice try, but that starts over on every line. OP: with no newlines. \$\endgroup\$Adám– Adám2017年05月08日 08:28:37 +00:00Commented May 8, 2017 at 8:28
-
\$\begingroup\$ Any of the answers that print to a terminal will wrap at the end of the row. Try zooming out; you'll see it continues on forever horizontally as well, it's just "hidden" by the browser window. \$\endgroup\$user371366– user3713662017年05月08日 08:37:41 +00:00Commented May 8, 2017 at 8:37
-
\$\begingroup\$ Also, I wasted a few bytes having the repeating image "round off" so that it wraps more convincingly, hope that helps \$\endgroup\$user371366– user3713662017年05月08日 08:38:45 +00:00Commented May 8, 2017 at 8:38
-
\$\begingroup\$ Wrapping is fine, but yours doesn't. It could be seen as "printing" infinitely many infinite lines. Just restrict the background to a single line. \$\endgroup\$Adám– Adám2017年05月08日 08:39:20 +00:00Commented May 8, 2017 at 8:39
-
1\$\begingroup\$ yes. i thought i would have to put
repeat no-repeator; background-repeat: repeat-x, but figured out how to avoid it. Turns out obeying the spec saves bytes! \$\endgroup\$user371366– user3713662017年05月08日 08:56:29 +00:00Commented May 8, 2017 at 8:56
Python 3, 87 bytes
while 1:print(end="FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ")
-
\$\begingroup\$ What does
end=do? \$\endgroup\$Adám– Adám2017年05月07日 07:45:59 +00:00Commented May 7, 2017 at 7:45 -
\$\begingroup\$ @Adám It lets you print without a trailing newline. \$\endgroup\$Erik the Outgolfer– Erik the Outgolfer2017年05月07日 07:46:11 +00:00Commented May 7, 2017 at 7:46
-
3\$\begingroup\$ @Adám The default arguments to
printareprint("",end="\n"). \$\endgroup\$Leaky Nun– Leaky Nun2017年05月07日 07:46:35 +00:00Commented May 7, 2017 at 7:46 -
\$\begingroup\$ I thought that substituting
ER COandMEANS(leading+trailing space) would save some bytes, but apparently not. \$\endgroup\$Erik the Outgolfer– Erik the Outgolfer2017年05月07日 07:55:27 +00:00Commented May 7, 2017 at 7:55
LOLCODE, 116 bytes
HAI 1
IM IN YR O
VISIBLE "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "!
IM OUTTA YR O
KTHXBYE
-
\$\begingroup\$ I'm not familiar with LOLCODE. How does this output forever? \$\endgroup\$Esolanging Fruit– Esolanging Fruit2017年05月07日 11:49:30 +00:00Commented May 7, 2017 at 11:49
-
\$\begingroup\$ @Challenger5
IM IN YR ...andIM OUTTA YR ...form an infinite loop. \$\endgroup\$Leaky Nun– Leaky Nun2017年05月07日 12:09:30 +00:00Commented May 7, 2017 at 12:09 -
1\$\begingroup\$ You can remove HAI and KTHXBYE as compilers don't require them. Also, no exclamation at end of VISIBLE. \$\endgroup\$AAM111– AAM1112017年05月07日 17:14:23 +00:00Commented May 7, 2017 at 17:14
-
-
\$\begingroup\$ Oh, I forgot about the no-line-break rule. I didn't realize LOLCODE had a way to do this! \$\endgroup\$AAM111– AAM1112017年05月09日 11:31:44 +00:00Commented May 9, 2017 at 11:31
Ruby, 77 bytes
assigning " MEANS " to a variable saved all of 1 byte :-)
loop{$><<"EASIER COMMUNICATION#{m=" MEANS "}FASTER CODING#{m}FEWER CODERS"+m}
JavaScript (V8), (削除) 90 (削除ここまで) (削除) 87 (削除ここまで) 81 bytes
f=_=>f(write`EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS `)
-
1\$\begingroup\$ Your code does not work:
document.write`EASIER COMMUNICATION${m=" MEANS "}FASTER CODING${m}FEWER CODERS`+mis equivalent todocument.write([ 'EASIER COMMUNICATION', 'FASTER CODING', 'FEWER CODERS' ], ' MEANS ', ' MEANS ') + ' MEANS ', which 1) will convert all arguments to strings and concatenate (printingEASIER COMMUNICATION,FASTER CODING,FEWER CODERS MEANS MEANS), and 2) won't include the last' MEANS 'anyways since it's outside the function call... \$\endgroup\$Freyja– Freyja2017年05月07日 18:52:11 +00:00Commented May 7, 2017 at 18:52
Octave, 86 bytes
while fprintf('FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ')end
Explanation:
This is fairly self-explanatory. The only real "trick" here is to use while fprintf. When fprintf is given a return argument, it will return the number of characters printed, and all non-zero numbers are considered true in Octave, so the loop condition will always be true.
I desperately tried to make the more interesting approach shorter, but it turned out to be 9 bytes longer, unfortunately:
while fprintf('FEW%sDERS%sEASI%sMMUNICATION%sFAST%sDING%s',{'ER CO',' MEANS '}{'ababab'-96})end
This tries to insert the strings 'ER CO' and ' MEANS' into the string at the correct locations, using direct indexing where 'ababab'-96 is a shorter version of [1 2 1 2 1 2].
This was a bit shorter (93 bytes), but still longer than the naive approach
while fprintf('FEWER CODERS%sEASIER COMMUNICATION%sFASTER CODING%s',{' MEANS '}{[1,1,1]})end
And another one (89 bytes), using Level River St's approach:
while fprintf(['FEWER CODERS',s=' MEANS ','EASIER COMMUNIDATION',s,'FASTER CODING',s])end
This should work in theory, for one less byte than the original solution, but it fails for some strange reason:
while fprintf"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "
end
This uses the buggy feature that fprintf('abc def') is equivalent to fprintf"abc def". The end must be on the next line, but it's still one byte shorter since two parentheses are skipped.
And one more for 87:
while fprintf('FEWER CODERS%sEASIER COMMUNICATION%sFASTER CODING%s',k=' MEANS ',k,k)end
Well, don't say I didn't try :)
-
\$\begingroup\$ You do know that
fprintfrecycles arguments right? Your last version can be 6 bytes less, Try it online! \$\endgroup\$Sanchises– Sanchises2019年09月23日 12:52:04 +00:00Commented Sep 23, 2019 at 12:52
Alice, 70 bytes
" SNAEM "k"SREDOC REWEF"e0j"GNIDOC RETSAF"e0j"NOITACINUMMOC REISAE"d&o
Explanation
Unfortunately, reusing the MEANS (with spaces) only saves a single byte over just printing the whole thing in one go. Consequently, extracting the ER CO would actually cost a byte (or probably more, because it would be slightly more expensive to extract another section).
" SNAEM " Push the code points of " MEANS " in reverse.
k If there is a return address on the return address stack (which
there isn't right now), pop it and jump there.
"SREDOC REWEF" Push the code points of "FEWER CODERS" in reverse.
e0j Jump to the beginning of the line, pushing the location of the
j to the return address stack. Hence, we push the code points
of " MEANS " again, but then the k pops the return address and
jumps back here.
"GNIDOC RETSAF" Push the code points of "FASTER CODING" in reverse.
e0j Jump to the beginning of the line again.
"NOITACINUMMOC REISAE" Push the code points of "EASIER COMMUNICATION" in reverse.
d Push the stack depth.
&o Print that many bytes from the top of the stack.
Afterwards the IP wraps around to the first column and the
program starts over.
C#, 102 bytes
_=>{for(;;)System.Console.Write("EASIER COMMUNICATION{0}FASTER CODING{0}FEWER CODERS{0}"," MEANS ");};
AWK, 85 bytes
BEGIN{for(c=" MEANS ";;)printf"EASIER COMMUNICATION"c"FASTER CODING"c"FEWER CODERS"c}
Apparently I came up with the same shortcut as others. All other substitutions take up too much space. :(
Retina, (削除) 64 (削除ここまで) 60 bytes
+>(`$
EASI_MMUNICATION@FAST_DING@FEW_DERS@
@
MEANS
_
ER CO
Explanation
The program consists of three grouped replacement stages. The group as a whole is applied repeatedly until the output stops changing (which it never will) and the output is printed after each time (rather than just at the end, because there will be no end)
The first stage adds the string EASI_MMUNICATION@FAST_DING@FEW_DERS@ at the end of the input. The input starts out empty, but keeps growing.
The second stage replaces each of those @s with the string MEANS (surrounded by a space on each side).
The third stage replaces the _s with the string ER CO.
convey, 69 bytes
}'EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS '
convey outputs strings forever, which is usually annoying but sometimes helpful.
Vyxal S, 31 bytes
×ばつİ‛⋏1Ṫ□しろいしかく×ばつ+`ẎɾÞċ
×ばつİ‛⋏1Ṫ□しろいしかく×ばつİ` # "EasierCommunicationMeansFasterCodingMeansFewerCodersMeans"
Ẏ # Match all regex occurences of
×ばつ+` # Uppercase letter followed by several lowercase letters
ɾ # Uppercase
Þċ # Cycle, repeat into an infinite list
# (S flag) join by spaces
Pyth, 69 bytes
Wp"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS
How it works
Wp"...
W while the following is true: (do nothing)
p print the following and return the following
"...
Java (OpenJDK 9), 114 bytes
static void f(){while(1>0)System.out.print("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ");}
Try it online! Stop the execution after a few seconds because it does not know when to stop.
-
\$\begingroup\$ Submissions have to be full programs or functions. \$\endgroup\$user41805– user418052017年05月07日 09:53:56 +00:00Commented May 7, 2017 at 9:53
-
\$\begingroup\$ @KritixiLithos Can it be an anonymous lambda? \$\endgroup\$totallyhuman– totallyhuman2017年05月07日 10:04:14 +00:00Commented May 7, 2017 at 10:04
-
\$\begingroup\$ @totallyhuman Yes. In other languages that's allowed; I don't see why Java should be an exception. \$\endgroup\$wizzwizz4– wizzwizz42017年05月07日 10:40:19 +00:00Commented May 7, 2017 at 10:40
-
\$\begingroup\$ Why stop execution? Just untick disable output cache. \$\endgroup\$Adám– Adám2017年05月07日 15:46:08 +00:00Commented May 7, 2017 at 15:46
-
3\$\begingroup\$ But you can do
for(;;)\$\endgroup\$Brian McCutchon– Brian McCutchon2017年05月08日 04:52:33 +00:00Commented May 8, 2017 at 4:52
C, 86 bytes
f(){printf("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ");f();}
See it work online.
-
\$\begingroup\$ This depends upon the compiler doing tail-call optimization, but I guess most do. \$\endgroup\$Wayne Conrad– Wayne Conrad2017年05月08日 17:14:36 +00:00Commented May 8, 2017 at 17:14
-
\$\begingroup\$ @WayneConrad It is a valid answer without that optimization. Infinite recursion satisfies the requirement: Produce infinitely repeating output \$\endgroup\$2501– 25012017年05月08日 17:24:58 +00:00Commented May 8, 2017 at 17:24
-
\$\begingroup\$ Without tail call optimization, the stack will overflow eventually. Try compiling it with
gcc(use default options, so no tail call optimization), and when you run it, redirect output to /dev/null in order to speed up the process. It'll seg fault. With the '-O2' option, which enables tail call optimization, it runs forever as intended. \$\endgroup\$Wayne Conrad– Wayne Conrad2017年05月08日 21:38:25 +00:00Commented May 8, 2017 at 21:38 -
\$\begingroup\$ @WayneConrad Infinite recursion is conceptually, infinite. The question doesn't constrain to a practical definition of infinite. By common consensus, infinite recursion is infinitely repeating, in other words, no logic within the program will stop it.. \$\endgroup\$2501– 25012017年05月08日 22:47:19 +00:00Commented May 8, 2017 at 22:47
-
\$\begingroup\$ I am not declaring that your solution is invalid. All I meant to point out is that, in order to execute properly, a little cooperation is needed from the compiler. \$\endgroup\$Wayne Conrad– Wayne Conrad2017年05月09日 00:08:55 +00:00Commented May 9, 2017 at 0:08
bc, 76 bytes
while(1)"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "
Perl 6, (削除) 81 80 (削除ここまで) 79 bytes
print ('EASIER COMMUNICATION','FASTER CODING','FEWER CODERS'X'MEANS'),' 'for ^Inf
loop {print ('EASIER COMMUNICATION','FASTER CODING','FEWER CODERS'X'MEANS'),' '}
loop {print [~] 'EASIER COMMUNICATION','FASTER CODING','FEWER CODERS'X'MEANS '}
MATL, 68 bytes
`'EASIER COMMUNICATION*FASTER CODING*FEWER CODERS*'42' MEANS 'Zt&YDT
Explanation
` % Do...while
'EASIER COMMUNICATION*FASTER CODING*FEWER CODERS*' % Push this string
42 % Push 42 (ASCII for '*')
' MEANS ' % Push this string
Zt % String replacement
&YD % printf to STDOUT
T % Push true as loop condition
% End (implicit)
Axiom, (削除) 92 (削除ここまで) 89 bytes
repeat fortranLiteral"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "
insert in one line to Axiom window. Possible there is one function shorter than "fortranLiteral" that not write "\n"
Explore related questions
See similar questions with these tags.