Пирамида языков


15

Напишите код, который запускается или компилируется на максимально возможном количестве языков программирования и печатает разделенный новой строкой список имен предыдущих и текущих языков программирования.

  • Каждый используемый язык должен иметь имя на 1 символ длиннее предыдущего; ех. C#, C++, Ruby, Jelly, Python...
  • Каждый язык должен выводить список имен языков, разделенных новой строкой, отсортированных по длине.
    • Вывод должен быть пирамидой: список может содержать только имена используемых языков, которые короче, чем имя языка запущенного скрипта + имя языка запущенного скрипта.
  • Передние и конечные переводы строки разрешены.
  • Стандартные лазейки запрещены.
  • Нельзя создавать собственные языки программирования только для увеличения оценки.
  • Номера версий не учитываются в названии языка, но вы можете указать их в своем сообщении, если в новых версиях языка появятся несовместимые изменения.
  • Вы можете решить, хотите ли вы использовать ярлык для имени языка или его полного имени, но вы не можете отправить обе формы в одном ответе. Вы можете использовать экс. либо SPLили Shakespeare Programming Language.
    • Только буквы, цифры, символы ASCII и одинарные пробелы (не ведущие и не завершающие) учитывают длину имени языка.

Примеры

Пример вывода для C, C # и C ++:

C

C

C#

C
C#

C++

C
C#
C++


1
Существует множество языков с однобуквенными именами: только у tio.run есть 4, 7, C, D, I, J, K, M, R и V. (Другим важным является B, предшественник C.)
Линн

@Lynn Но если вы начнете с более длинного названия языка, вы можете потерять счет
RedClover

Ответы:


19

10 языков C , RK , > <> , Rail , Width , Gol> <> , Fission , Cardinal , brainfuck , Befunge-98 , 991 байт

//Q rk:start print: "C^nrk" rk:end @,k*97C'a"rk"a"><>"a-1"Sail"a"Width"a"Gol><>"a"Fission"a"Cardinal"a"brainfuck"a"Befunge-98"
main(){puts("C");}
/*
$'main'
 \-[C\n\rk\n\><>\n\Rail]o

++++[++++>---<]>.>++++++++++.[------->+++<]>.-------.>++++++++++.[->++++++<]>++.--.++.>++++++++++.>-[--->+<]>---.[------>+<]>--.++++++++.+++.>++++++++++.[------>+<]>.+++[->++++<]>+.-----.--[--->+<]>--.------------.>++++++++++.[->+++++++<]>+.[--->+<]>++.---.--[->+++<]>.--.++.>++++++++++.[->+++++++<]>.[-->+++<]>.++++++++++..----------.++++++.-.>++++++++++.+[->++++++<]>+.-[-->+++<]>--.--[--->+<]>---.--------------.+++++.+++++.-------------.+++++++++++.>++++++++++.+[--->++++<]>--.[--->+<]>----.+++[->+++<]>++.++++++++.+++++.--------.-[--->+<]>--.+[->+++<]>+.++++++++.
R"C"N"rk"N"><>"N'S_!"ail"N"Width"N"Gol><>"N"Fission"*
/"><>krC"oaoooaooooE ao'liaR>'~ooooaoS"Width"aoS"Gol><>"; QQaAWAmcOAWAaicmaiWAAiwAOaOwWAAAOawmmFOcQww
 %"C"++++++++++,"rk","><>",=--t++,"ail"~,"Width","Gol><>","Fission","Cardinal"
 */

Попробуйте онлайн!

568 байт этого кода - просто бредовый код. Программа Befunge-98 производит:

C
rk
><>
Rail
Width
Gol><>
Fission
Cardinal
brainfuck
Befunge-98

Вы не можете сохранить 2 байта, используя putsвместо printf?
Нил

@Neil Спасибо! (раньше не играл в гольф в С (некоторые сказали бы, что я до сих пор этого не сделал))
Джо Кинг,

2
Ницца! Я хотел бы добавить Parenthetic дальше - он игнорирует все, кроме (и ), что позволяет легко quine с.
Линн

9

7 языков (J, ES, Zsh, Bash, Straw, Retina, Fission), 222 байта

echo 'J'
#0 : 0
echo es #(10)#»:::J>>(es)>>(zsh)>>(Bash)>>(Straw)>>
(echo zsh;)
if [[ $BASH_VERSION ]]; then echo Bash; fi
#              ;R"J"N"es"N"zsh"N"Bash"N"Straw"N'Q+!"etina"N"Fission"N;
K`J¶es¶zsh¶Bash¶Straw¶Retina

Попробуйте онлайн!


Я знаю, что это не проблема кода-гольфа, но вы можете удалить Nпосле, "Fission"чтобы сэкономить 1 байт. :)
Кевин Круйссен

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.