Піраміда мов


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 , Ширина , 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 Дякую! (раніше не займалися гольфами в C (дехто би сказав, що я все ще не маю))
Jo King

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

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.