La pyramide des langues


15

Écrivez un code qui s'exécute ou se compile dans autant de langages de programmation que possible et imprime une liste séparée par des retours à la ligne des noms des langages de programmation précédents et actuels.

  • Chaque langue utilisée doit avoir un nom plus long que le précédent; ex. C#, C++, Ruby, Jelly, Python...
  • Chaque langue doit produire une liste de noms de langues séparés par une nouvelle ligne, triés par longueur.
    • La sortie doit être une pyramide: la liste ne peut contenir que des noms de langue utilisés, plus courts que le nom du langage de script en cours d'exécution + le nom du langage de script en cours d'exécution.
  • Les sauts de ligne de début et de fin sont autorisés.
  • Les failles standard sont interdites.
  • Il n'est pas permis de créer des langages de programmation personnalisés juste pour augmenter le score.
  • Les numéros de version ne comptent pas dans le nom de la langue, mais vous pouvez le spécifier dans votre message s'il y a des changements incompatibles dans les nouvelles versions de la langue.
  • Vous pouvez décider si vous souhaitez utiliser le raccourci pour le nom de la langue ou son nom complet, mais vous ne pouvez pas soumettre les deux formulaires en une seule réponse. Vous pouvez utiliser ex. soit SPLou Shakespeare Programming Language.
    • Seuls les lettres, les chiffres, les symboles ASCII et les espaces simples (sans début ni fin) comptent dans la longueur du nom de la langue.

Exemples

Exemples de sorties pour C, C # et C ++:

C

C

C#

C
C#

C++

C
C#
C++


1
Il existe de nombreuses langues avec des noms à une seule lettre: tio.run seul a 4, 7, C, D, I, J, K, M, R et V. (Un autre significatif est B, le prédécesseur de C.)
Lynn

@Lynn Mais si vous partez d'un nom de langue plus long, vous risquez de perdre le score
RedClover

Réponses:


19

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

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

Essayez-le en ligne!

568 octets de ce n'est que le code de brainfuck. Le programme Befunge-98 produit:

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

Vous ne pouvez pas enregistrer 2 octets en utilisant putsau lieu de printf?
Neil

@Neil Merci! (je n'ai jamais joué au golf en C auparavant (certains diraient que je ne l'ai pas encore fait))
Jo King

2
Agréable! Je regarderais en ajoutant parenthetic suivante - il ignore tout sauf (et ), le rendant facile à Quine avec.
Lynn

9

7 langues (J, es, zsh, Bash, Straw, Retina, Fission), 222 octets

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

Essayez-le en ligne!


Je sais que ce n'est pas un défi de golf de code, mais vous pouvez supprimer l' Nafter "Fission"pour économiser 1 octet. :)
Kevin Cruijssen

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.