Piramida języków

15

Napisz kod, który uruchamia się lub kompiluje w jak największej liczbie języków programowania i drukuje listę oddzielonych linii od nowych i poprzednich języków programowania.

  • Każdy używany język musi mieć 1 znak dłuższą nazwę niż poprzednia; dawny. C#, C++, Ruby, Jelly, Python...
  • Każdy język musi wypisać listę nazw języków oddzielonych nową linią, posortowaną według długości.
    • Dane wyjściowe muszą być piramidą: lista może zawierać tylko używane nazwy języków, które są krótsze niż nazwa uruchomionego języka skryptowego + nazwa uruchomionego języka skryptowego.
  • Wiodące i końcowe znaki nowej linii są dozwolone.
  • Standardowe luki są zabronione.
  • Nie wolno tworzyć niestandardowych języków programowania, aby zwiększyć wynik.
  • Numery wersji nie liczą się w nazwie języka, ale możesz podać go w poście, jeśli pojawią się jakieś niezgodne zmiany w nowych wersjach języka.
  • Możesz zdecydować, czy chcesz użyć skrótu do nazwy języka, czy pełnej nazwy, ale nie możesz przesłać obu formularzy w jednej odpowiedzi. Możesz użyć np. albo SPLalbo Shakespeare Programming Language.
    • Tylko litery, cyfry, symbole ASCII i pojedyncze spacje (bez wiodących i końcowych) są uwzględniane w długości nazwy języka.

Przykłady

Przykładowe dane wyjściowe dla C, C # i C ++:

C

C

C#

C
C#

C++

C
C#
C++
Czerwona koniczyna
źródło
Post w piaskownicy
RedClover,
1
Istnieje wiele języków o nazwach jednoliterowych: sam tio.run ma 4, 7, C, D, I, J, K, M, R i V. (Kolejnym znaczącym jest B, poprzednik C.)
Lynn,
@ Lynn Ale jeśli zaczniesz od dłuższej nazwy języka, możesz stracić wynik
RedClover

Odpowiedzi:

19

10 języków C , RK , > <> , szyn , szerokość , Gol> <> , Rozszczepienie , kardynał , brainfuck , befunge-98 , 991 bajtów

//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"
 */

Wypróbuj online!

568 bajtów to po prostu kod typu „brainfuck”. Program Befunge-98 produkuje:

C
rk
><>
Rail
Width
Gol><>
Fission
Cardinal
brainfuck
Befunge-98
Jo King
źródło
Czy nie możesz zapisać 2 bajtów, używając putszamiast printf?
Neil
@Neil Thanks! (nie grałem wcześniej w C (niektórzy powiedzieliby, że nadal nie mam))
Jo King
2
Ładny! Chciałbym spojrzeć na dodanie nawiasie obok - ignoruje wszystko, ale (i ), co ułatwia Quine'a z.
Lynn
9

7 języków (J, es, zsh, Bash, Straw, Retina, Fission), 222 bajty

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

Wypróbuj online!

Lynn
źródło
Wiem, że nie jest to wyzwanie dla golfa, ale możesz usunąć Npóźniej, "Fission"aby zaoszczędzić 1 bajt. :)
Kevin Cruijssen