Мой отец, который был действительно хорошим APLer и научил меня всем основам APL (и многому другому ), скончался в этот день, пять лет назад. При подготовке к 50-летию APL я нашел это патентное письмо (переведенное для удобства тех, кто не читает по-датски) для рукописного логотипа. Это объясняет основную причину того, что APL никогда не набирает большую пользовательскую базу - причина, которая, конечно, относится и ко всем удивительным языкам игры этого сообщества:
A 3497/77 Треб. 29 - го августа 1977 года на 13
Анри Брудзевски, инженерно-консалтинговая компания, Mindevej 28, Søborg,
класс 9 , включая компьютеры, особенно компьютеры с кодировкой APL,
класс 42: компания, предоставляющая услуги в сфере ИТ, особенно при использовании компьютеров с кодировкой APL.
задача
Произведите бесконечно повторяющийся вывод текста EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS
без перевода строки. Вы можете начать текст с EASIER
или FASTER
или FEWER
.
Ответы:
05AB1E , 25 байтов
Попробуйте онлайн!
Объяснение:
источник
[
означает «начало бесконечного цикла»,‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘
является сжатой версиейEASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS
и?
означает печать без перевода строки.compressed
.SVG (HTML5), 336 байт
Изменить: Некоторые люди обнаружили, что шрифт не совсем подходит для них, поэтому вот версия, которая позволяет вам несколько пикселей регулировки:
источник
PHP, 76 байт
Попробуйте онлайн!
источник
EASI0MMUNICATION1FAST0DING1FEW0DERS1
трактуется как строка"EASI0MMUNICATION1FAST0DING1FEW0DERS1"
. В-третьих,strtr
ожидается ассоциативный массив («карта» или «словарь» на других языках), но этот код передается в обычном массиве, поэтому он обрабатывает регулярный массив как ассоциативный массив с ключами 0 и 1. Наконец, эти целые числа 0 и 1 обрабатываются как строки,"0"
и,"1"
как вы уже догадались, функции нужны строки.Vim 69 байт
источник
HTML, 122 байта.
Извините, не могу с собой поделать.
источник
Python 2 ,
8281 байт-1 байт благодаря Leaky Nun.
Я, наверное, что-то делаю не так, но уже очень поздно Обратите внимание на запятую.
Попробуйте онлайн!
Другое решение, 85 байт
Я, вероятно, могу сыграть в гольф дальше.
Попробуйте онлайн!
источник
'%sER CO%s MEANS '
и удалите пробелы из элементов формата, она будет играть лучше и работать правильно.Желе ,
3329 байт4 байта благодаря Эрику Аутгольферу.
Попробуйте онлайн!
источник
“©%5ÐƬwȮh¬Þ6.⁷ḷḊḥṫɠlḶṀġß»
(все еще нужно использоватьŒu
и;⁶
) 2) Вы можете использоватьß
вместо1¿
.Брахилог , 70 байт
Попробуйте онлайн!
Как это работает
источник
HTML / CSS (только Firefox),
179177183176173 байтаКонечно, далеко не самые низкие оценки, я просто подумал, что было бы интересно получить бесконечное повторение в HTML / CSS без участия JS :)
Changelog:
width:100%
стиль,right:0
чтобы сохранить 3 байтаисточник
repeat no-repeat
или; background-repeat: repeat-x
, но понял, как этого избежать. Оказывается, подчиняясь спецификации экономит байты!Python 3 , 87 байт
Попробуйте онлайн!
источник
end=
?print
являютсяprint("",end="\n")
.ER CO
иMEANS
(ведущий + конечный пробел) сэкономит несколько байтов, но, видимо, нет.C (gcc) , 92 байта
Попробуйте онлайн!
источник
LOLCODE , 116 байтов
Попробуйте онлайн!
источник
IM IN YR ...
иIM OUTTA YR ...
образуют бесконечный цикл.!
подавляет возврат каретки после печати.Рубин, 77 байт
присвоение
" MEANS "
переменной сохраняло всего 1 байт :-)источник
JavaScript (ES6),
9087 байтФункциональная альтернатива, 100 байт
«Функционирование» здесь означает «не сломает ваш браузер» (по крайней мере, на некоторое время)!
источник
document.write`EASIER COMMUNICATION${m=" MEANS "}FASTER CODING${m}FEWER CODERS`+m
эквивалентно томуdocument.write([ 'EASIER COMMUNICATION', 'FASTER CODING', 'FEWER CODERS' ], ' MEANS ', ' MEANS ') + ' MEANS '
, который 1) преобразует все аргументы в строки и объединяет (печатаетEASIER COMMUNICATION,FASTER CODING,FEWER CODERS MEANS MEANS
), и 2) не будет включать последние в' MEANS '
любом случае, поскольку он находится вне вызова функции ...Befunge , 73 байта
Попробуйте онлайн!
источник
">:#,_
сA"k,
и сохранить два байта. СсылкаОктава, 86 байт
Объяснение:
Это довольно очевидно. Единственная настоящая «хитрость» здесь заключается в использовании
while fprintf
. Когдаfprintf
задан аргумент возврата, он вернет количество напечатанных символов, и все ненулевые числа будут учтеныtrue
в октаве, поэтому условие цикла всегда будет истинным.Я отчаянно пытался сделать более интересный подход более коротким, но, к сожалению, он оказался на 9 байт длиннее:
Это пытается вставить строки
'ER CO'
и' MEANS'
в строку в правильных местах, используя прямое индексирование, где'ababab'-96
более короткая версия[1 2 1 2 1 2]
.Это было немного короче (93 байта), но все же дольше, чем наивный подход
И еще один (89 байт), используя подход Level River St:
Это должно работать теоретически, на один байт меньше, чем исходное решение, но по какой-то странной причине это не получается:
Это использует ошибочную функцию, которая
fprintf('abc def')
эквивалентнаfprintf"abc def"
.end
Должно быть на следующей строке, но это еще один байт короче поскольку две скобки пропускаются.И еще один за 87:
Ну, не говори, что я не пробовал :)
источник
fprintf
перераспределяет аргументы правильно? Ваша последняя версия может быть на 6 байт меньше, попробуйте онлайн!Алиса , 70 байт
Попробуйте онлайн!
объяснение
К сожалению, повторное использование
MEANS
(с пробелами) экономит только один байт по сравнению с простой печатью всего за один раз. Следовательно, извлечениеER CO
фактически будет стоить байт (или, возможно, дороже, потому что извлечение другого раздела будет немного дороже).источник
C #, 102 байта
источник
Pyth , 69 байт
Попробуйте онлайн!
Как это работает
источник
Lua , 92 байта
Попробуйте онлайн!
источник
Java (OpenJDK 9) , 114 байт
Попробуйте онлайн! Остановите выполнение через несколько секунд, потому что он не знает, когда остановиться.
источник
for(;;)
C 86 байтов
Посмотрите, как это работает онлайн .
источник
gcc
(используйте параметры по умолчанию, так что оптимизация вызовов не требуется), и при запуске перенаправьте вывод в / dev / null, чтобы ускорить процесс. Это вызовет ошибку. С опцией '-O2', которая позволяет оптимизировать хвостовой вызов, он работает всегда, как и предполагалось.bc , 76 байт
источник
Perl 6 ,
81 8079 байтовПопытайся
Попытайся
Попытайся
источник
MATL , 68 байт
Попробуйте онлайн!
объяснение
источник
Аксиома,
9289 байтвставить в одну строку в окно Аксиома. Возможно, есть одна функция короче "fortranLiteral", которая не записывает "\ n"
источник
Braingolf , 78 байт
или
Braingolf , 77 байт [не конкурирует]
Этот неконкурентоспособен, так как мне пришлось исправить 2 ошибки, касающиеся использования жадного модификатора (
&
) с оператором char print (@
)источник
Пустой , 267 байт
Вставляет
FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS
в стек, затем печатает его. Никогда не заканчивается как нет{@}
Также забавный факт, я использовал следующий скрипт Braingolf для генерации этого кода
источник
Groovy 79 байтов
Использует шпунтовую интерполяцию Groovy.
источник
PowerShell ,
10097 байтПопробуйте онлайн!
Старый ответ:
PowerShell , 100 байт
Попробуйте онлайн!
PowerShell немного сложен для этого, потому что большинство достойных способов вывода на консоль также вставляют новую строку.
Write-Host
требуется из-за этого. Однако это все еще демонстрирует, как конвейерная обработка может сократить объем кода.Вам нужно будет остановить выполнение через короткое время, потому что оно не вернется, поскольку это бесконечный цикл.
Изменить: сбрил 3 байта, изменив
while
цикл наfor
цикл.источник