Meu pai, que era realmente um bom APLer e me ensinou todos os conceitos básicos do APL (e muito mais), faleceu neste dia, cinco anos atrás. Em preparação para os 50 anos de APL , encontrei esta carta de patente (traduzida para a conveniência de quem não lê dinamarquês) para um logotipo manuscrito. Explica uma das principais razões para a APL nunca obter uma grande base de usuários - uma razão que, obviamente, se aplica a todas as incríveis linguagens de golfe desta comunidade:
A 3497/77 Req. 29 th agosto 1977 em 13
Henri Brudzewsky, empresa de consultoria em engenharia, Mindevej 28, Søborg,
classe 9 , incluindo computadores, especialmente computadores com código APL;
classe 42: empresa de serviços de TI, especialmente durante o uso de computadores com código APL.
Tarefa
Produza uma saída infinita de repetição do texto EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS
sem novas linhas. Você pode começar o texto com EASIER
ou FASTER
ou FEWER
.
Respostas:
05AB1E , 25 bytes
Experimente online!
Explicação:
fonte
[
meio 'início do loop infinito',‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘
é uma versão compactadaEASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS
e?
significa imprimir sem nova linha.compressed
.SVG (HTML5), 336 bytes
Edit: Algumas pessoas descobriram que a fonte não se encaixa bem nelas, então aqui está uma versão que permite alguns pixels de ajuste:
fonte
PHP, 76 bytes
Experimente online!
fonte
EASI0MMUNICATION1FAST0DING1FEW0DERS1
é tratado como a sequência"EASI0MMUNICATION1FAST0DING1FEW0DERS1"
. Terceiro,strtr
espera uma matriz associativa (um "mapa" ou "dicionário" em outros idiomas), mas esse código é transmitido em uma matriz regular, por isso trata a matriz regular como uma matriz associativa com as teclas 0 e 1. Por fim, esses números inteiros 0 e eu sou tratado como strings"0"
e"1"
porque, você adivinhou, a função precisa de strings.Vim 69 bytes
fonte
HTML, 122 bytes.
Desculpe, não posso me ajudar.
fonte
Python 2 ,
8281 bytes-1 byte graças a Leaky Nun.
Provavelmente estou fazendo algo errado, mas é muito tarde, então meh. Observe a vírgula à direita.
Experimente online!
Outra solução, 85 bytes
Provavelmente eu posso jogar golfe ainda mais.
Experimente online!
fonte
'%sER CO%s MEANS '
e remover os espaços dos itens de formatação, ela será mais eficiente e funcionará corretamente.Geléia ,
3329 bytes4 bytes graças a Erik, o Outgolfer.
Experimente online!
fonte
“©%5ÐƬwȮh¬Þ6.⁷ḷḊḥṫɠlḶṀġß»
(ainda precisa usarŒu
e;⁶
) 2) Você pode usar emß
vez de1¿
.Braquilog , 70 bytes
Experimente online!
Como funciona
fonte
HTML / CSS (apenas Firefox),
179177183176 176173 bytesCertianly longe das pontuações mais baixas, eu apenas pensei que seria divertido obter uma repetição infinita em HTML / CSS, sem nenhum JS envolvido :)
Changelog:
width:100%
estilo porright:0
para salvar 3 bytesfonte
repeat no-repeat
ou; background-repeat: repeat-x
, mas descobri como evitá-lo. Acontece que obedecer às especificações salva bytes!Python 3 , 87 bytes
Experimente online!
fonte
end=
faz?print
sãoprint("",end="\n")
.ER CO
eMEANS
(espaço à esquerda + à direita) salvaria alguns bytes, mas aparentemente não.C (gcc) , 92 bytes
Experimente online!
fonte
LOLCODE , 116 bytes
Experimente online!
fonte
IM IN YR ...
eIM OUTTA YR ...
forme um loop infinito.!
suprime o retorno do carro depois da impressão.Ruby, 77 bytes
atribuir
" MEANS "
a uma variável salvou todos os 1 byte :-)fonte
JavaScript (ES6),
9087 bytesAlternativa de funcionamento, 100 bytes
"Funcionar" aqui significa "não trava o navegador" (por um tempo, pelo menos)!
fonte
document.write`EASIER COMMUNICATION${m=" MEANS "}FASTER CODING${m}FEWER CODERS`+m
é equivalente adocument.write([ 'EASIER COMMUNICATION', 'FASTER CODING', 'FEWER CODERS' ], ' MEANS ', ' MEANS ') + ' MEANS '
, que 1) converterá todos os argumentos em seqüências de caracteres e concatenará (impressãoEASIER COMMUNICATION,FASTER CODING,FEWER CODERS MEANS MEANS
) e 2) não incluirá o último de' MEANS '
qualquer maneira, pois está fora da chamada de função ...Befunge , 73 bytes
Experimente online!
fonte
">:#,_
comA"k,
e salvar dois bytes. LinkOitava, 86 bytes
Explicação:
Isso é bastante auto-explicativo. O único "truque" real aqui é usar
while fprintf
. Quandofprintf
é fornecido um argumento de retorno, ele retornará o número de caracteres impressos e todos os números diferentes de zero serão consideradostrue
na oitava, portanto, a condição do loop sempre será verdadeira.Tentei desesperadamente tornar a abordagem mais interessante mais curta, mas acabou sendo 9 bytes a mais, infelizmente:
Isso tenta inserir as strings
'ER CO'
e' MEANS'
as strings nos locais corretos, usando a indexação direta, em que'ababab'-96
há uma versão mais curta do[1 2 1 2 1 2]
.Isso foi um pouco menor (93 bytes), mas ainda maior do que a abordagem ingênua
E outro (89 bytes), usando a abordagem da Level River St:
Isso deve funcionar em teoria, por um byte a menos que a solução original, mas falha por algum motivo estranho:
Isso usa o recurso de buggy
fprintf('abc def')
equivalente afprintf"abc def"
. Eleend
deve estar na próxima linha, mas ainda é um byte mais curto, pois dois parênteses são ignorados.E mais um para 87:
Bem, não diga que eu não tentei :)
fonte
fprintf
recicla argumentos, certo? Sua última versão pode ter 6 bytes a menos. Experimente online!Alice , 70 bytes
Experimente online!
Explicação
Infelizmente, a reutilização de
MEANS
(com espaços) economiza apenas um byte em apenas imprimir a coisa toda de uma só vez. Conseqüentemente, extrair oER CO
realmente custaria um byte (ou provavelmente mais, porque seria um pouco mais caro extrair outra seção).fonte
C #, 102 bytes
fonte
Pitão , 69 bytes
Experimente online!
Como funciona
fonte
Lua , 92 bytes
Experimente online!
fonte
Java (OpenJDK 9) , 114 bytes
Experimente online! Pare a execução após alguns segundos, porque ele não sabe quando parar.
fonte
for(;;)
C, 86 bytes
Veja como funciona online .
fonte
gcc
(use as opções padrão, para que não haja otimização de chamada de cauda) e, quando você executá-lo, redirecione a saída para / dev / null para acelerar o processo. Seg seg falha. Com a opção '-O2', que permite a otimização da chamada de cauda, ela funciona para sempre conforme o esperado.bc , 76 bytes
fonte
Perl 6,
81 8079 bytesTry it
Try it
Try it
fonte
MATL, 68 bytes
Try it online!
Explanation
fonte
Axiom,
9289 bytesinsert in one line to Axiom window. Possible there is one function shorter than "fortranLiteral" that not write "\n"
fonte
Braingolf, 78 bytes
or
Braingolf, 77 bytes [non-competing]
This one's non-competing as I had to fix 2 bugs regarding using the greedy modifier (
&
) with the char print operator (@
)fonte
Blank, 267 bytes
Pushes
FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS
to the stack, then prints it. Never terminates as no{@}
Also fun fact, I used the following Braingolf script to generate this code
fonte
Groovy 79 bytes
Uses groovy's string interpolation.
fonte
PowerShell,
10097 bytesTry it online!
Older answer:
PowerShell, 100 bytes
Try it online!
PowerShell is a little tricky for this because most dignified ways of outputting to the console also insert a new line.
Write-Host
is required because of this. However, it still demonstrates how pipelining can shorten the coding footprint.You will need to stop the execution after a short time because it will not return as it is an infinite loop.
Edit: shaved off 3 bytes by changing a
while
loop to afor
loop.fonte