30 ภาษา 248 ไบต์ 248/30 ^ 3 = 0.009185
#|#?15g,@ kkmNmSaIeoe99+{\#/-;n@0ea
#[9!@>.>.eeaww#-1@*"12" L
#{
###
#`{
25
print(4^2 +7)/2
"""
Jo is here.
$'main'MoO OOM
7
>Jo, 30
>X Jo
f::=~27
::=]##}#(prin 29)
print (7/6*24)###;alert 2#-[>+<-----]>-.|#(write(if(= 1/5 .2)26 3))"""
แก้ไข: Beatnikถูกนำออกเนื่องจากการทดสอบเบื้องต้นใน Beatnik อาจเป็นไปไม่ได้
รหัสมีแท็บอยู่ (ซึ่งได้รับการ mangled โดย Stack Exchange) และบรรทัดใหม่ต่อท้ายดังนั้นนี่คือxxd
:
00000000: 237c 233f 3135 672c 4020 2020 0920 2020 #|#?15g,@ .
00000010: 206b 6b6d 4e6d 5361 4965 6f65 3939 2b7b kkmNmSaIeoe99+{
00000020: 5c23 2f2d 3b6e 4030 6561 0a23 5b39 2140 \#/-;n@0ea.#[9!@
00000030: 3e2e 3e2e 6565 6177 7723 2d31 402a 2231 >.>.eeaww#-1@*"1
00000040: 3222 094c 0a23 7b20 090a 2323 230a 2360 2".L.#{ ..###.#`
00000050: 7b0a 3235 0a70 7269 6e74 2834 5e32 202b {.25.print(4^2 +
00000060: 3729 2f32 0a0a 0a22 2222 0a4a 6f20 6973 7)/2...""".Jo is
00000070: 2068 6572 652e 0a24 276d 6169 6e27 4d6f here..$'main'Mo
00000080: 4f20 4f4f 4d0a 2037 0a3e 4a6f 2c20 3330 O OOM. 7.>Jo, 30
00000090: 0a3e 5820 4a6f 0a66 3a3a 3d7e 3237 0a3a .>X Jo.f::=~27.:
000000a0: 3a3d 5d23 237d 2328 7072 696e 2032 3929 :=]##}#(prin 29)
000000b0: 0a70 7269 6e74 2028 372f 362a 3234 2923 .print (7/6*24)#
000000c0: 2323 3b61 6c65 7274 2032 232d 5b3e 2b3c ##;alert 2#-[>+<
000000d0: 2d2d 2d2d 2d5d 3e2d 2e7c 2328 7772 6974 -----]>-.|#(writ
000000e0: 6528 6966 283d 2031 2f35 202e 3229 3236 e(if(= 1/5 .2)26
000000f0: 2033 2929 2222 220a 3))""".
หรือคุณสามารถคัดลอกและวางรหัสจาก"ลองออนไลน์!" ลิงค์
นี่เป็นกอล์ฟที่แย่มาก แต่ฉันต้องการที่จะเล่นความคิดที่ว่าเมื่อคุณมีภาษามากพอจำนวนไบต์ก็ไม่สำคัญอีกต่อไป ต้องบอกว่ามีบางภาษาที่ฉันสามารถเพิ่มได้อย่างง่ายดาย (เช่น Objeck) แต่ในขณะนี้นานเกินไปที่จะเป็นประโยชน์ ฉันไม่มีภาษาที่ดีดังนั้นฉันอาจหยุดที่นี่ตอนนี้
เรียกใช้โปรแกรมทั้งหมดด้วย</dev/null 2>/dev/null
(เช่นอินพุตว่าง, STDERR ที่ถูกบีบอัด)
คำอธิบายค่อนข้างยาวดังนั้นนี่เป็นบทสรุปของผู้บริหาร:
No. Lang. Non-esolang? 2D esolang? BF/BF-deriv?
--------------------------------------------------------------------------
1 COW ✓
2 CoffeeScript ✓
3 Common Lisp ✓
4 Retina
5 Befunge-93 ✓
6 Python 2 ✓
7 Rail ✓
8 ETA
9 Prelude
10 Gol><> ✓
11 evil
12 Foo ✓
13 Ruby ✓
14 ><> ✓
15 Brian & Chuck ✓
16 Whitespace
17 3var
18 Axo ✓
19 Labyrinth ✓
20 Starry
21 Fission ✓
22 Brainfuck ✓
23 Julia ✓
24 Lily ✓
25 GolfScript
26 Chicken Scheme ✓
27 Thue
28 Perl 6 ✓
29 Picolisp ✓
30 TRANSCRIPT
COW เป็นอนุพันธ์ Brainfuck ด้วยคำสั่งเพิ่มเติมซึ่งหนึ่งในนั้นคือเอาท์พุทตัวเลข สิ่งที่ไม่ถูกต้องจะถูกละเว้นดังนั้นโปรแกรมที่ดำเนินการเป็นเพียง
MoO OOM
ซึ่งจะเพิ่มเซลล์เป็น 1 จากนั้นพิมพ์เป็นตัวเลข
CoffeeScript เห็นว่า:
# comments
###
multiline comment
###;alert 2# comment
ซึ่งเพียงแค่เตือน 2
(ใช่มันน่าจะดีกว่าถ้าภาษาอื่นใช้ช่องนี้ แต่ฉันขี้เกียจเกินกว่าที่จะสับที่จุดนี้: P)
Common Lisp (clisp) เห็นว่า:
#|
multiline comment
|#(write(if(= 1/5 .2)26 3))"""
1/5
มีเหตุผลและไม่เท่ากับ0.2
ดังนั้น 3 จะถูกพิมพ์ การดำเนินการ"""
เป็นข้อผิดพลาดทางไวยากรณ์
โปรดทราบว่าprint
ดูเหมือนว่าจะส่งออกขึ้นบรรทัดใหม่และพื้นที่ต่อท้ายใน Common LISP อย่างไรก็ตามโชคดีที่write
ทำงานได้ทั้ง Common Lisp และ Chicken Scheme
ข้อ จำกัด ที่แนะนำ : ทุก ๆ บรรทัดที่สองที่เริ่มต้นจากความต้องการแรกจะต้องเป็น regex ที่ถูกต้อง
ทุกคู่ของบรรทัดจะสร้างสเตจแทนที่โดยแทนที่อินสแตนซ์ของการจับคู่ของ regex ของบรรทัดแรกด้วยบรรทัดที่สอง ตรงกลางเรามีคู่
"""
"""
ซึ่งแทนที่สตริงว่างครั้งแรกกับ บรรทัดสุดท้ายที่ว่างเปล่าซึ่งไม่ได้เป็นส่วนหนึ่งของคู่ใด ๆ ถือว่าเป็นขั้นการแข่งขันนับจำนวนการแข่งขันของ regex มีสี่กรณีของสตริงที่ว่างเปล่าอยู่ในคือ"""
1"2"3"4
Befunge เป็นภาษา 2D และคำแนะนำที่เกี่ยวข้องคือ
# # 15g,@
ในบรรทัดแรกและ5
ใน25
บรรทัด #
ข้ามคำสั่งถัดไป15g
รับถ่านที่ตำแหน่ง(1, 5)
ในรหัส ( 5
ใน25
บรรทัด),
ส่งออกถ่านและ@
หยุด
Python เห็น:
# comments
25
print(4^2 +7)/2
"""
multiline string
"""
(4^2+7)/2 = (xor(4,2)+7)/2 = (6+7)/2 = 13/2 = 6
ซึ่งได้รับ print
เอ็ด
Rail เป็นภาษา 2D และการดำเนินการเริ่มต้นจาก$
ฟังก์ชั่นหลักมุ่งไปทางตะวันออกเฉียงใต้ ดังนั้นส่วนที่เกี่ยวข้องของรหัสคือ
$'main'
7
o
J
ด้วยo
และJ
มาจากบรรทัดที่ใช้โดย TRANSCRIPT หลังจากส่งออก 7 รถไฟจะชนกับสิ่งที่ไม่รู้จักJ
คำสั่งที่ซึ่งทำให้โปรแกรมขัดข้อง
ข้อ จำกัด แนะนำ:etaoinsh
ตัวอักษรก่อนที่โปรแกรมการทางพิเศษแห่งประเทศไทยไม่ควรจะอยู่ใน
การทางพิเศษแห่งประเทศไทยเพียงรู้จักตัวอักษรetaoinsh
และตัวพิมพ์ใหญ่ของพวกเขาหมายถึงรหัสเริ่มต้นด้วย
NSaIeoe
n...e
ผลักดันให้จำนวนฐาน 7 ขึ้นอยู่กับสิ่งที่อยู่ภายในตัวคั่นซึ่งSaI
เป็น624
หรือ 312 ในทศนิยม o
จากนั้นเอาท์พุตเป็นถ่านเห็นได้ชัดว่าหลังจากโมดูโล 256 ทำให้ถ่าน8
(รหัสจุด 56)e
จากนั้นพยายามหารด้วยสแต็กเปล่าซึ่งล้มเหลว
ข้อ จำกัด ที่แนะนำ:ไม่มีมากกว่าหนึ่ง()
ในคอลัมน์ใด ๆ ที่()
ตรงกับการอ่านคอลัมน์ในแต่ละครั้งไม่มีการวน()
ซ้ำไม่สิ้นสุด
ต้องมีตัวแปลภาษา Python NUMERIC_OUTPUT = True
ตั้งค่า
โหมโรงเป็นภาษาที่แต่ละบรรทัดจะดำเนินการแยกกัน ตัวอักษรจำนวนมากถูกประหารชีวิต แต่ส่วนที่สำคัญคือ
9!
บนบรรทัดที่สองซึ่งส่งออก 9. ()
ในพรีลูดแสดงถึงลูป แต่ต้องขอบคุณความโดดเด่นของ#
s (ซึ่งป็อปจากสแต็ก) ท็อปส์ซูของสแต็คจะเป็น 0 เสมอในขณะที่ลูปถูกตีดังนั้นไม่มีใครเลย กำลังวิ่ง ข้อ จำกัด ของซอร์สโค้ดของ Prelude เกี่ยวกับ()
แนะนำการเว้นวรรคภายนอกบางอย่าง
ส่วนนี้ (และ> <>) ทำงานเหมือนคำตอบที่มาร์ติน รหัสที่เกี่ยวข้องคือ
# ;n@0ea
Gol> <> เป็นภาษา 2D และ#
สะท้อน IP ทำให้มันเดินทางไปทางซ้าย มันล้อมรอบกด 10, 14 และ 0 เพื่อสแต็ค @
จากนั้นหมุนสแต็กโดยนำ 10 ขึ้นไปด้านบนn
ออกเอาท์พุตและ;
หยุดโปรแกรม
ส่วนนี้คล้ายกับคำตอบของ Martin
ความชั่วร้ายละเว้นทุกสิ่งยกเว้นตัวอักษรตัวเล็ก ไม่สนใจอักขระเพิ่มอีกสองสามตัวส่วนที่เกี่ยวข้องคือ
aeeeaeeaww
ที่a
เพิ่มตัวแปรA
, e
ฟังก์ชั่นการสานความชั่วร้ายซึ่ง shuffles บิตของA
และเอาท์พุทw
A
ด้วยเหตุนี้เราส่งออกครั้งที่สองให้1
11
แต่สิ่งที่เกี่ยวกับคำแนะนำที่เหลือและโดยเฉพาะอย่างยิ่งที่ w
ในบรรทัดสุดท้าย สมมติว่าบางครั้งมันง่ายที่สุดที่จะยุ่งกับรหัสและสวดมนต์มันยังคงใช้ได้ในทุกสิ่งที่นี่มันทำอย่างใด ...
ฟูเอาท์พุทอะไรก็ได้ระหว่างเครื่องหมายคำพูดคู่ดังนั้นส่วนที่เกี่ยวข้องคือ
"12"
บนบรรทัดที่สอง #-1@
แต่เนื่องจากเราต้องคำพูดคู่ต่อมาเราใช้วิธีการคล้ายกับคำตอบที่มาร์ตินที่จะทำให้ข้อผิดพลาดฟูออกคือก่อนหน้านี้ มันไม่ชัดเจนว่าทำไมมันถึงใช้งานได้ในภาษาที่ทหารใช้ในการเผชิญหน้ากับกองที่ว่างเปล่าและการหารโดยไม่มีข้อผิดพลาด แต่ฉันดีใจที่มัน
เช่นเดียวกับ Python Ruby เห็น:
# comments
25
print(4^2 +7)/2
"""
multiline string
"""
แต่ก็เป็นที่น่าสังเกตว่าหลายสตริงเป็นจริงสามสายแยกต่างหาก ( ""
, "..."
, ""
) ตัดแบ่งกัน บรรทัดที่พิมพ์ออก(4^2+7) = xor(4,2)+7 = 6+7 = 13
ก่อนที่จะพยายามแยกข้อผิดพลาดnil
ด้วย 2
ส่วนนี้เหมือนกับ Gol> <> ส่วนยกเว้น@
จะเพิ่ม 14 ขึ้นไปด้านบนแทนซึ่งจะได้รับผลลัพธ์
Brian & Chuck เป็นอนุพันธ์ BF ที่มีสองเทปโดยที่ตัวชี้คำแนะนำของเทปหนึ่งเป็นตัวชี้หน่วยความจำของเทปอีกตัวหนึ่ง ในกรณีที่ไม่มี```
ซอร์สโค้ดสองบรรทัดแรกจะถูกใช้เพื่อเริ่มต้นเทป
ตัวอักษรที่เกี่ยวข้องในสองบรรทัดแรกคือ:
?15
# >.>.
?
ในเทปของไบรอันผ่านการควบคุมไปโยนในเซลล์ที่ถูกชี้ไป (คน#
) จะไม่ใช่ศูนย์ ชัคก็ดำเนินการ>.>.
เอาต์พุตทั้งสองตัวอักษรหลังจากเครื่องหมายคำถาม
ใช้STL
สำหรับพื้นที่แท็บและบรรทัดตามลำดับการเริ่มต้นของโปรแกรมคือ:
SSSTSSSSL
TL
STL
L
L
บรรทัดแรกพุช 16 ( +10000
ฐาน 2) ซึ่งก่อนหน้านี้TLST
พิมพ์ออกมาเป็นตัวเลข ขึ้นบรรทัดใหม่อีกสามบรรทัดจะหยุดโปรแกรม
อย่างไรก็ตามโปรดทราบว่าโปรแกรมนี้เป็นล่ามเฉพาะ ส่วนที่เหลือของข้อผิดพลาดทางไวยากรณ์ของรหัสในล่ามส่วนใหญ่ดังนั้นจึงจำเป็นต้องใช้ล่ามที่ผ่อนปรนมากขึ้นเช่นเดียวกับที่เชื่อมโยงด้านบน
ในบรรทัดแรกนั้นมีคำสั่งที่ถูกประหาร แต่ก็มีคำสั่งที่เกี่ยวข้อง
kkmmao#/
เนื่องจากข้อ จำกัด ของ ETA เราใช้k
เพื่อลดตัวแปร B แทนa
การเพิ่มขึ้น kk
decrements B เพื่อ -2 และmm
สี่เหลี่ยม B สองครั้งเพื่อ 16 ซึ่งจะเพิ่มขึ้นถึง 17 a
ด้วย o
นี้จะออกมาแล้วด้วย
#
จะถูกใช้เพื่อรีเซ็ต B เป็น 0 และ/
ทำให้โปรแกรมเกิดข้อผิดพลาดผ่านการหารด้วย 0
ข้อ จำกัด ที่แนะนำ:ไม่มีคำแนะนำก่อนโปรแกรม Axo ที่เปลี่ยนทิศทางของ IP
อีกครั้งคำสั่งที่ไม่เสียค่าใช้จ่ายจะถูกดำเนินการในบรรทัดแรก แต่เป็นคำสั่งที่เกี่ยวข้อง
# # 15 ,@ 9 9 + { \
Axo เป็นภาษา 2D เช่น Befunge และ#
ในทำนองเดียวกันสะพานที่ข้ามคำสั่งถัดไป แต่เฉพาะในกรณีที่ส่วนบนสุดของสแต็คเป็นศูนย์ 15,
ผลักดันไปยังกอง @
แต่กองอบด้วย 99+
จากนั้นกด 18 {
เอาต์พุตและ\
หยุดการทำงาน
เขาวงกตเป็นภาษา 2D อีกภาษาหนึ่งและมีคำแนะนำในการดำเนินการ
#|#
[9!@
#
ดันความยาวของสแต็กซึ่งเป็น 0 ในครั้งแรก |
เป็นบิตหรือไม่เปลี่ยนแปลงอะไรเลยตั้งแต่สแต็คเพิ่งมี 0 ณ จุดนี้และอันที่สอง#
จะผลัก 1 เนื่องจากศูนย์เดียว เราเลี้ยวขวาเนื่องจาก 1, 9
แปลงนี้ 1 1*10+9 = 19
, !
พิมพ์มันและ@
หยุดพัก
โปรแกรมนี้อาศัยความจริงที่ว่า [
ไม่ใช่คำสั่งที่ได้รับการยอมรับในปัจจุบันและด้วยเหตุนี้ถือว่าเป็นกำแพง
ข้อ จำกัด ที่แนะนำ:+
s ทั้งหมดต้องมีพื้นที่ว่างก่อนหน้าอย่างน้อยหนึ่งรายการ
หากเราตัดอักขระที่ไม่รู้จักออกส่วนที่เกี่ยวข้องของรหัสคือ
, +.. +
,
เป็นอินพุต แต่เนื่องจากเราไปป์จากที่/dev/null
นั่นไม่มีให้กด 0 ไปยังสแต็ก A ที่+
มีn >= 5
ช่องว่างก่อนหน้าจะถูกดันn-5
ดังนั้นคำสั่งถัดไปจะผลัก 2. ..
จากนั้นเอาต์พุตสองหลักเหล่านี้ในลำดับย้อนกลับ
ต่อไปเรามี +
ช่องว่างที่นำหน้าซึ่งซ้ำกัน อย่างไรก็ตามสแต็กต์ว่างเปล่าดังนั้นเราจึงผิดพลาด
ส่วนที่เกี่ยวข้องเท่านั้นสำหรับฟิชชันคือ
*"12"L
L
วางไข่ของอะตอมที่เคลื่อนที่ไปทางซ้าย"21"
พิมพ์ 21 และ*
หยุดพัก
ข้อ จำกัด ที่นำมาใช้:ไม่.
ก่อนหน้าแรก[
สิ่งนี้ต้องการล่ามที่ให้ 0 ใน EOF และมีเซลล์ 8 บิต รหัสที่เกี่ยวข้องคือ
,+-[>.>.-+.>,>]-[>+<-----]>-..
inital -
คือการชดเชย+
และครั้งแรก[...]
ไม่ได้ดำเนินการตั้งแต่เซลล์เป็น 0 ต่อไปนี้-[>+<-----]>-
ตั้งค่าเซลล์เพื่อรหัสถ่าน2
และ..
ส่งออกมันสองครั้ง
จูเลียเห็น:
# comments
25
print(4^2 +7)/2
สิ่งที่พิมพ์ออกมาคือ4^2+7 = pow(4,2)+7 = 16+7 = 23
ข้อผิดพลาดของโปรแกรมที่พยายามหารnothing
ด้วย 2 โปรดทราบว่า Julia ดูเหมือนจะไม่สนใจความจริงที่ว่ารหัสที่เหลือจะทำให้เกิดข้อผิดพลาดทางไวยากรณ์
ลิลลี่เห็น:
# comment
#[
multiline comment
]## comment
print (7/6*24)# comment
7/6*24 = 1*24 = 24
ถูกพิมพ์
GolfScript เห็น:
# comments
25
print(
GolfScript เป็นสแต็คที่ใช้จึง 25 print
จะถูกผลักไปกองโผล่แล้วและพิมพ์ด้วย (
จากนั้นพยายามลดค่าสตริงว่างโดยนัยบนสแต็กซึ่งล้มเหลวและเกิดข้อผิดพลาดกับโปรแกรม
Chicken Scheme มี#| ... |#
ไวยากรณ์ความคิดเห็นหลายบรรทัดเหมือนกับ Common LISP อย่างไรก็ตามใน
(write(if(= 1/5 .2)26 3))
1/5
เป็นลอยซึ่งเป็นเท่ากับ0.2
ดังนั้น 26 จะออกมาแทน
เนื่องจากเป็นภาษาที่ใช้การเขียนสตริงใหม่ ส่วนแรกที่เกี่ยวข้องคือ
f::=~27
::=
ซึ่งได้กำหนดทดแทนแล้วหมายถึงการสิ้นสุดของการแทนด้วยf -> 27
::=
โลนf
ในif
นั้นจะถูกแทนที่ด้วย27
ซึ่งเป็นเอาต์พุต
Perl 6 มีไวยากรณ์ความคิดเห็นใหม่#`(some bracket)
ซึ่งก็คือความคิดเห็นหลายบรรทัดไปทางวงเล็บที่ตรงกัน ดังนั้น Perl 6 เห็น:
# comments
#`{
multiline comment
}# comment
print (7/6*24)# comment
7/6*24 = 28
ซึ่งพิมพ์
Picolisp เห็น:
# comment
#{
multiline comment
}#(prin 29)
ซึ่งพิมพ์ 29. บรรทัดหลังจากนั้นทำให้เกิดข้อผิดพลาดทางไวยากรณ์
TRANSCRIPT เป็น esolang ใจความแบบอย่างหลังจากการผจญภัยข้อความ บรรทัดที่ไม่รู้จักจะถูกละเว้น (ซึ่งช่วยให้คุณสามารถเพิ่มข้อความ / เรื่องราวพิเศษในหมู่คำแนะนำรหัสจริง) ดังนั้นบรรทัดที่เกี่ยวข้องคือ:
Jo is here.
>Jo, 30
>X Jo
บรรทัดแรกประกาศตัวแปรสตริงJo
โดยใช้ชื่อสองตัวอักษรเนื่องจากชื่อตัวอักษรหนึ่งตัวดูเหมือนจะล้มเหลว บรรทัดที่สองตั้งค่าสตริงนี้"30"
เป็นซึ่งถูกส่งออกโดยX
("ตรวจสอบ") ในบรรทัดที่สาม
2.7.1
2.7.n
(อันที่จริงแล้ว sweerpotato ทำเช่นนั้นกับรุ่นใหญ่)