30
\$\begingroup\$

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.

\$\endgroup\$
  • \$\begingroup\$ I misinterpreted your challenge and what I did was i.imgur.com/qKnTj3q.png ! \$\endgroup\$ – sergiol Nov 12 '17 at 0:14
  • \$\begingroup\$ @sergiol Almost valid over here. \$\endgroup\$ – Adám Nov 12 '17 at 0:23
  • \$\begingroup\$ Link to patent letter is dead. \$\endgroup\$ – pppery Oct 20 '19 at 4:24
  • \$\begingroup\$ @pppery Thanks. Updated. \$\endgroup\$ – Adám Oct 20 '19 at 12:32

42 Answers 42

1
2
1
\$\begingroup\$

AWK, 85 bytes

BEGIN{for(c=" MEANS ";;)printf"EASIER COMMUNICATION"c"FASTER CODING"c"FEWER CODERS"c}

Try it online!

Apparently I came up with the same shortcut as others. All other substitutions take up too much space. :(

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

Ly, 75 bytes

1[p"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "&o1]

Try it online!

Explanation:

1[p                                                                      1] # infinitely
   "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "&o   # print the string
|improve this answer|||||
\$\endgroup\$
1
\$\begingroup\$

C# (.NET Core), 125 bytes

class c{static void Main(){for(;;)System.Console.Write("EASIER COMMUNICATION{0}FASTER CODING{0}FEWER CODERS{0}"," MEANS ");}}

This is a full program rather than just a function like the other C# answer.

Test online

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

Keg, 69 bytes

{ SNAEM GNIDOC RETSAF SNAEM NOITACINUMMOC REISAE SNAEM SREDOC REWEF(,

Explanation:

{#                                                                     Infinite loop
  SNAEM GNIDOC RETSAF SNAEM NOITACINUMMOC REISAE SNAEM SREDOC REWEF#   Pushing the string reversed
                                                                   (, #And outputting it reversed

TIO

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

Hexadecimal Stacking Pseudo-Assembly Language, 810 bytes

00000020002040000020005340000020004E40000020004140000020004540000020004D40000020002040000020005340000020005240000020004540000020004440000020004F40000020004340000020002040000020005240000020004540000020005740000020004540000020004640000020002040000020005340000020004E40000020004140000020004540000020004D40000020002040000020004740000020004E40000020004940000020004440000020004F40000020004340000020002040000020005240000020004540000020005440000020005340000020004140000020004640000020002040000020005340000020004E40000020004140000020004540000020004D40000020002040000020004E40000020004F40000020004940000020005440000020004140000020004340000020004940000020004E40000020005540000020004D40000020004D40000020004F400000200043400000200020400000200052400000200045400000200049400000200053400000200041400000200045400000140000010000

Try it online!

000000  Label Start:
200020
400000
.
.
.       push letters
140000  print string
010000  jump to start
|improve this answer|||||
\$\endgroup\$
1
\$\begingroup\$

Whitespace, 415 bytes

(much whitespace)

Try it online!

lssl        label start:
sssttssssstsststtsttstsststttsstttsstsstttssstsssttttsttttsttttsttttsststttsstssststtssssstttsttttsstssttsttssttsttsstsssstssttssssssttttttstttsttsttsttstsstssssssttssststttssttttttstttstssssssttsssttsssssttssttsststttstttttttstststsstsssstttstsstsssstsssstttstttsststsssstssssttttstttssstttssttssstsssstssl
            push base 24 sentence "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "
lsssl       label print:
sssttsssl   24
stsstl      copy 1
stsstl      copy 1
tstt        mod
ssststttl   23
tsst        sub
lsl         dup
ltstl       jz space
ssstttsssl  push 56
tsss        add
lsstl       label space:
ssstsssssl  push 32
tsss        add
tlss        printc
tsts        div
sls         dup
ltsl        jz start
lslsl       jump print
|improve this answer|||||
\$\endgroup\$
  • 1
    \$\begingroup\$ Would zero as space be shorter since you wouldn't need the 23 sub dup part? \$\endgroup\$ – Jo King Oct 21 '19 at 12:15
  • \$\begingroup\$ It also works with a zero for space (I did that in my 99 bootles of beer answer.) The problem is, the string must not end with a space. It only works with a leading space which is not allowed afaik. \$\endgroup\$ – Dorian Oct 21 '19 at 12:42
  • \$\begingroup\$ That makes sense. How about duping the 24 rather than pushing 23 and then subtracting the mod from the duped value and jumping if negative? \$\endgroup\$ – Jo King Oct 21 '19 at 12:58
  • 1
    \$\begingroup\$ I don't know if I'm understanding something wrong. The mod values are in the range 0-23. If you subtract 24 from that, every value will be negative. If you swap it before subtraction, none of the values will be negative or zero. \$\endgroup\$ – Dorian Oct 21 '19 at 13:37
1
\$\begingroup\$

Retina, 64 60 bytes

+>(`$
EASI_MMUNICATION@FAST_DING@FEW_DERS@
@
 MEANS 
_
ER CO

Try it online!

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.

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

Tcl, 94 bytes

while 1 {puts -nonewline "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "}

Try it online!

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

Bash 68 bytes

f()(printf "%sER CO%s MEANS " EASI MMUNICATION FAST DING FEW DERS;f)

Try it online

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

brainfuck, 657 bytes

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

Try it online!

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

APL NARS, 152 bytes, 76 chars

f
A:⍞←'EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS '⋄→A

I don't know if there are some leak or the buffer for output is buffered in a way increase its size. Possible i see it wrong but it seems that the size mem in NARS increase, and afther some second the output of the line disappear.

|improve this answer|||||
\$\endgroup\$
  • \$\begingroup\$ You don't need to count the f (or the newline, which you didn't count anyway), by every character is two bytes in NARS, so 75 chars=150 bytes. \$\endgroup\$ – Adám Jan 11 '18 at 18:45
  • 1
    \$\begingroup\$ Shorter: →≡⍞←'EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS ' \$\endgroup\$ – Adám Jan 11 '18 at 18:46
  • \$\begingroup\$ →⍞←'EASIER.... Why not this? \$\endgroup\$ – RosLuP Jan 11 '18 at 20:38
  • \$\begingroup\$ Because needs a line number to go to. Text is not a line number, but its depth (1) is the number you need. \$\endgroup\$ – Adám Jan 12 '18 at 8:14
0
\$\begingroup\$

MathGolf, 74 bytes

1{"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "_q}∟

Try it online!

Explantion:

1                                                                          Loop condition
 {                                                                         Start block
  "EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "_q   Output the string
                                                                        }∟ Do without popping
|improve this answer|||||
\$\endgroup\$
  • \$\begingroup\$ Mathgolf does have both a compressed string literal command as well as a dictionary lookup, either of which should shorten this somewhat (though I have no experience with them) \$\endgroup\$ – Jo King Oct 13 '19 at 9:20
  • \$\begingroup\$ None of those methods (compressed string literals (they only support lowercase letters) and dictionary lookups (none of those words are completely upper-case)) can compress capital lettters. In addition, there isn't a built-in in MathGolf that will capitalize a whole string. \$\endgroup\$ – user85052 Oct 13 '19 at 9:22
  • \$\begingroup\$ Huh, that's weird, though you could use (map capitalise) to do so \$\endgroup\$ – Jo King Oct 13 '19 at 9:45
  • \$\begingroup\$ Huh, this is weird, dictionary compression is actually longer than an uncompressed string. \$\endgroup\$ – user85052 Oct 13 '19 at 9:53
  • \$\begingroup\$ @JoKing Sorry, my compressed string is as long as the program. \$\endgroup\$ – user85052 Oct 13 '19 at 10:25
1
2

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.