La pirámide de las lenguas

15

Escriba un código que se ejecute o compile en tantos lenguajes de programación como sea posible e imprima una lista separada por una nueva línea de nombres de lenguajes de programación anteriores y actuales.

  • Cada idioma utilizado debe tener 1 nombre más largo que el anterior; ex. C#` C++` Ruby` Jelly` Python...
  • Cada idioma debe generar una lista de nombres de idiomas separados por una nueva línea, ordenados por longitud.
    • La salida debe ser una pirámide: la lista solo puede contener nombres de idiomas usados, que son más cortos que el nombre del idioma del script en ejecución + el nombre del idioma del script en ejecución.
  • Se permiten nuevas líneas iniciales y finales.
  • Lagunas estándar están prohibidas.
  • No está permitido crear lenguajes de programación personalizados solo para aumentar la puntuación.
  • Los números de versión no cuentan en el nombre del idioma, pero puede especificarlo en su publicación si hay cambios incompatibles en las nuevas versiones del idioma.
  • Puede decidir si desea utilizar el acceso directo para el nombre del idioma o su nombre completo, pero no puede enviar ambos formularios en una sola respuesta. Puedes usar ex. cualquiera SPLoShakespeare Programming Language .
    • Solo las letras, los números, los símbolos ASCII y los espacios individuales (no iniciales ni finales) cuentan en la longitud del nombre del idioma.

Ejemplos

Resultados de ejemplo para C, C # y C ++:

C

C

C#

C
C#

C++

C
C#
C++
Trébol rojo
fuente
Publicación de
1
Hay muchos idiomas con nombres de una letra: tio.run solo tiene 4, 7, C, D, I, J, K, M, R y V. (Otro significativo es B, el predecesor de C.)
Lynn
@ Lynn Pero si comienzas con un nombre de idioma más largo, podrías perder puntaje
RedClover

Respuestas:

19

10 idiomas C , rk , > <> , Rail , Width , Gol> <> , Fission , Cardinal , brainfuck , Befunge-98 , 991 bytes

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

Pruébalo en línea!

568 bytes de esto es solo el código brainfuck. El programa Befunge-98 produce:

C
rk
><>
Rail
Width
Gol><>
Fission
Cardinal
brainfuck
Befunge-98
Jo King
fuente
¿No puedes guardar 2 bytes usando en putslugar de printf?
Neil
@Neil ¡Gracias! (no he jugado golf en C antes (algunos dirían que aún no lo he hecho))
Jo King
2
¡Agradable! Me gustaría ver en añadiendo entre paréntesis al lado - que ignora todos menos (y ), por lo que es fácil de Quine con.
Lynn
9

7 idiomas (J, es, zsh, Bash, Straw, Retina, Fission), 222 bytes

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

Pruébalo en línea!

Lynn
fuente
Sé que este no es un desafío de código de golf, pero puede eliminar el Nafter "Fission"para guardar 1 byte. :)
Kevin Cruijssen