Diller Piramidi


15

Mümkün olduğu kadar çok programlama dilinde çalışan veya derleyen bir kod yazın ve önceki ve geçerli programlama dillerinin adlarından oluşan yeni satır ayrılmış bir listesini yazdırır.

  • Kullanılan her dilin öncekinden 1 karakter uzunluğunda olması gerekir; ex. C#, C++, Ruby, Jelly, Python...
  • Her dil, uzunluğa göre sıralanmış, yeni satırla ayrılmış bir dil adları listesi çıkarmalıdır.
    • Çıktı bir piramit olmalıdır: Liste, yalnızca çalışan komut dosyası dili adından + çalışan komut dosyası dilinin adından daha kısa olan kullanılmış dil adlarını içerebilir.
  • Öncü ve sondaki yeni satırlara izin verilir.
  • Standart boşluklar yasaktır.
  • Sadece puanı artırmak için özel programlama dilleri oluşturulmasına izin verilmez.
  • Sürüm numaraları dil adında sayılmaz, ancak dilin yeni sürümlerinde uyumsuz değişiklikler varsa bunu yayınınızda belirtebilirsiniz.
  • Dil adı veya tam adı için kısayolu kullanmak isteyip istemediğinize karar verebilirsiniz, ancak her iki formu da tek bir cevapta gönderemezsiniz. Ex kullanabilirsiniz. ya SPLda Shakespeare Programming Language.
    • Dil adı uzunluğunda yalnızca harfler, sayılar, ASCII sembolleri ve tek boşluklar (öndeki veya sondaki değil) sayılır.

Örnekler

C, C # ve C ++ için örnek çıktılar:

C

C

C#

C
C#

C++

C
C#
C++


1
Tek harfli adları olan birçok dil vardır: tio.run tek başına 4, 7, C, D, I, J, K, M, R ve V'dir (Bir başka önemli olan da B'dir, C'nin öncüsüdür.)
Lynn

@Lynn Ancak daha uzun bir dil adıyla
başlarsanız

Yanıtlar:


19

10 dil C , rk , > <> , Ray , Genişlik , Gol> <> , Bölünme , Kardinal , brainfuck , Befunge-98 , 991 bayt

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

Çevrimiçi deneyin!

Bunun 568 baytı sadece beyni kodudur. Befunge-98 programı şunları üretir:

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

putsBunun yerine kullanarak 2 bayt kaydedemez misiniz printf?
Neil

@Neil Teşekkürler! (daha önce C'de golf oynamadı (bazıları hala yapmadığımı söyleyebilir))
Jo King

2
Güzel! Ben ekleyerek içine bakmak arada belirtilen her şeyi ama yok sayar - Bir sonraki (ve )ile Quine'ın kolay hale getirmektedir.
Lynn

9

7 dil (J, es, zsh, Bash, Straw, Retina, Fisyon), 222 bayt

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

Çevrimiçi deneyin!


Bu bir kod golf meydan okuma değil biliyorum, ama Nsonra "Fission"1 bayt kurtarmak için kaldırabilirsiniz . :)
Kevin Cruijssen

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.