Kim tự tháp ngôn ngữ


15

Viết mã chạy hoặc biên dịch bằng càng nhiều ngôn ngữ lập trình càng tốt và in một danh sách tên mới của các ngôn ngữ lập trình hiện tại và trước đó.

  • Mỗi ngôn ngữ được sử dụng phải có tên dài hơn 1 ký tự so với trước đó; Ví dụ. C#, C++, Ruby, Jelly, Python...
  • Mỗi ngôn ngữ phải xuất ra một danh sách các tên ngôn ngữ được phân tách bằng một dòng mới, được sắp xếp theo độ dài.
    • Đầu ra phải là một kim tự tháp: Danh sách chỉ có thể chứa các tên ngôn ngữ được sử dụng, ngắn hơn tên ngôn ngữ tập lệnh đang chạy + tên của ngôn ngữ tập lệnh đang chạy.
  • Hàng đầu và dấu vết mới được cho phép.
  • Sơ hở tiêu chuẩn bị cấm.
  • Không được phép tạo ngôn ngữ lập trình tùy chỉnh chỉ để tăng điểm.
  • Số phiên bản không được tính bằng tên ngôn ngữ, nhưng bạn có thể chỉ định nó trong bài đăng của mình nếu có bất kỳ thay đổi không tương thích nào trong các phiên bản mới của ngôn ngữ.
  • Bạn có thể quyết định xem bạn muốn sử dụng phím tắt cho tên ngôn ngữ hay tên đầy đủ của nó, nhưng bạn không thể gửi cả hai biểu mẫu trong một câu trả lời. Bạn có thể sử dụng ex. hoặc SPLhoặc Shakespeare Programming Language.
    • Chỉ các chữ cái, số, ký hiệu ASCII và khoảng trắng đơn (không dẫn đầu hoặc dấu) được tính theo chiều dài tên ngôn ngữ.

Ví dụ

Kết quả đầu ra cho C, C # và C ++:

C

C

C#

C
C#

C++

C
C#
C++


1
Có rất nhiều ngôn ngữ có tên một chữ cái: một mình tio.run có 4, 7, C, D, I, J, K, M, R và V. (Một ngôn ngữ quan trọng khác là B, tiền thân của C.)
Lynn

@Lynn Nhưng nếu bạn bắt đầu từ một tên ngôn ngữ dài hơn, bạn có thể bị mất điểm
RedClover

Câu trả lời:


19

10 ngôn ngữ C , rk , > <> , Đường sắt , Chiều rộng , Gol> <> , Phân hạch , Hồng y , Brainfuck , Befunge-98 , 991 byte

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

Hãy thử trực tuyến!

568 byte trong số này chỉ là mã brainfuck. Chương trình Befunge-98 tạo ra:

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

Bạn không thể lưu 2 byte bằng cách sử dụng putsthay vì printf?
Neil

@Neil Cảm ơn! (chưa chơi gôn ở C trước đây (một số người sẽ nói tôi vẫn chưa))
Jo King

2
Đẹp! Tôi sẽ xem xét thêm Parenthetic tiếp theo - nó bỏ qua mọi thứ nhưng (, và )làm cho nó dễ dàng để kiểm tra.
Lynn

9

7 ngôn ngữ (J, es, zsh, Bash, Straw, Retina, Fudge), 222 byte

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

Hãy thử trực tuyến!


Tôi biết đây không phải là một thử thách chơi gôn, nhưng bạn có thể xóa phần Nsau "Fission"để lưu 1 byte. :)
Kevin Cruijssen

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.