เยลลี่ , จำนวนเต็ม 47 ตัว, 519 ไบต์
e
BI$⁼#
⁾⁾⁾Ụ^/
ı***ıḞḞ
5
6
7
.::::
9
EȮ<
⁻GṘ
=`p`VV×`DQV
~A~A~A~A~A~A~A~A~A~A~A~A~A
⁷ṾṾṾw
⁴ḟ€⁴Ṁ
mmmmċ
ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ
+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ
CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
ĖḌĖḌ
ṫṣȦJṫȦ⁸ȦJ
22
“@ṃ»
!ḤḤ!
³HH
ØaM
;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬
irið8c
⁶ḲĠṂ°İṂĊ
œṡ¹ẆẆTUṖṖṖṖP
ȷ½RṪ
LµdddddµFL
33
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ
ẇɓæ«æ«æ«æ«æ«|æ«|
⁹ṚḢ²
‘‘‘0‘‘‘‘‘‘‘
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ
-____---__________
”(O
⁵ḶxḶ⁵ị⁵ḶxḶḣṢ
⁽{ʂ%⁽{}
ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®
44
111111l11&K1111111Kl11&
,SS¶ỊỊ,ÇS¶ÇÑÇÇÇÑ
ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn
ทุกบรรทัดเป็นโปรแกรมที่แยกต่างหากและสมบูรณ์
ลองออนไลน์! (รวมถึงชุดทดสอบและตัวตรวจแยก)
มันทำงานอย่างไร
ทุกโปรแกรมแบบเต็มโดยไม่มีข้อโต้แย้งบรรทัดคำสั่งรันลิงค์หลัก (กำหนดในบรรทัดสุดท้าย) niladically คือไม่มีอินพุต หากลิงก์แรกในเชนคือ nilad ลิงก์นั้นจะถูกใช้เรียกใช้และทั้งอาร์กิวเมนต์หลักและค่าส่งคืนจะถูกตั้งค่าเป็นผลลัพธ์ หากลิงก์แรกในเชนคือ monad หรือ dyad จะไม่ถูกใช้และใช้อาร์กิวเมนต์และค่าส่งคืน0โดยนัยแทน ในทั้งสองกรณีส่วนที่เหลือของห่วงโซ่จะดำเนินการ monadically
วุ้นมีผลในหลายกรณี ยวดอาร์เรย์แบบซิงเกิลถูกพิมพ์โดยไม่มีเครื่องหมายวงเล็บล้อมรอบดังนั้น42และ[42]และแยกไม่ออกหลังการพิมพ์ เราจะใช้มันหลายครั้ง
1 - 10
e
อยู่ทดสอบอะตอมถ้าค่าตอบแทน0เป็นอาร์กิวเมนต์0 มันไม่ดังนั้นe
ผลตอบแทนที่1
BI$⁼#
BI$
เป็น quicklink โดยเฉพาะโซ่แบบ monadic ที่เกิดขึ้นจากการ$
จัดกลุ่มอะตอมไบนารีB
และกลุ่มอะตอมที่เพิ่มขึ้นI
อย่างรวดเร็ว รวมพวกมันจะแปลงจำนวนเต็มเป็นอาร์เรย์ของตัวเลขในฐาน 2 จากนั้นคำนวณความแตกต่างไปข้างหน้าของตัวเลขที่ได้ หากอาร์เรย์มีองค์ประกอบเดียวเท่านั้นจะไม่มีความแตกต่างไปข้างหน้าและI
ส่งกลับอาร์เรย์ว่าง (เท็จ); หากมีอย่างน้อยสองหลักI
ส่งกลับอาร์เรย์ที่ไม่ว่างเปล่า (ความจริง)
quick #
ใช้ quicklink ก่อนหน้านี้และนำไปใช้กับ0 , 1, 2, …จนกระทั่งพบว่ามีการจับคู่ที่เพียงพอและคืนค่าอาร์เรย์ของการจับคู่ จำนวนเงินที่ต้องคำนวณโดย⁼
ซึ่งเปรียบเทียบค่าตอบแทน / อาร์กิวเมนต์0ตัวเองยอม1 ดังนั้นโปรแกรมทั้งหมดจึงคืนค่า[2]ซึ่งเป็นจำนวนเต็มไม่เป็นลบตัวแรกที่มีตัวเลขสองหลักในฐาน 2
⁾⁾⁾Ụ^/
⁾⁾⁾
เป็นสตริงตัวอักษรเฉพาะสตริง⁾⁾ เกรดขึ้นอะตอมỤ
เรียงลำดับดัชนีของตนโดยค่าที่สอดคล้องกันของพวกเขา; ตั้งแต่ตัวละครทั้งสองมีค่าเท่ากันนี้ผลตอบแทนถัวเฉลี่ย[1, 2] อาร์เรย์ส่งผลให้มีการลดลงด้วยบิต XOR ^/
ดังนั้นโปรแกรมทั้งหมดส่งกลับ3
ı***ıḞḞ
ı
เริ่มต้นการโต้แย้งและผลตอบแทนคุ้มค่าให้กับหน่วยจินตภาพฉัน *
เป็นรูปแบบเลขชี้กำลังซึ่งมีค่าอาร์กิวเมนต์เริ่มต้นที่ถูกต้องสำหรับอาร์กิวเมนต์ของลิงก์หลัก ดังนั้น***ı
คำนวณ((i ฉัน ) ฉัน ) ฉัน ≈ 4.81 + 0iที่Ḟ
อะตอม ( ชั้นสำหรับอาร์กิวเมนต์จริงส่วนจริงสำหรับคนที่ซับซ้อน) คำนวณส่วนจริง ( 4.81 ) จากนั้นḞ
ชั้นยอม4
5
6
7
โปรแกรมทั้งสามนี้ประกอบด้วยตัวอักษรเดียวและทำสิ่งที่คุณคาดหวัง
.::::
ตัวอักษร.
เป็นชวเลขสำหรับ0.5และเริ่มต้นการโต้แย้งและค่าตอบแทน แบ่งจำนวนเต็มคู่ของ ( :
) ค่าเริ่มต้นของการโต้แย้งสิทธิในการโต้แย้งการเชื่อมโยงหลักเพื่อ::::
คำนวณ0.5 / 0.5 / 0.5 / 0.5 / 0.5ผลผลิต8
9
ตัวอักษรอื่น
EȮ<
ทั้งหมดเท่ากับอะตอมE
ผลตอบแทนที่1ถ้าองค์ประกอบทั้งหมดในการโต้เถียงที่มีความเท่าเทียมกันและ0หากไม่ได้ อาร์กิวเมนต์จำนวนเต็มZจะเลื่อนตำแหน่งให้เป็น[Z]ดังนั้นE
จะให้ผลตอบแทน1สำหรับอาร์กิวเมนต์นัย0
ตอนนี้เอาต์พุตอะตอมจะȮ
พิมพ์1ถึง STDOUT จากนั้นเราจะเปรียบเทียบ1กับข้อโต้แย้งโดยปริยาย0ใช้น้อยกว่า<
อะตอม ผลลัพธ์คือ(1 <0) = 0และถูกพิมพ์โดยปริยายเมื่อโปรแกรมเสร็จสิ้น
11 - 20
⁻GṘ
ตารางอะตอมG
พยายามที่จะทำให้ตารางสายตาที่ชื่นชอบจากอาร์กิวเมนต์ สำหรับอาร์กิวเมนต์จำนวนเต็มธรรมดา (ที่นี่: 0 ) มันจะล้อมในอาเรย์ แบนไม่เท่ากับอะตอม⁻
เปรียบเทียบอาร์กิวเมนต์นัย0กับผลที่ได้ไปทางขวา ( [0] ) ผลผลิต1ตั้งแต่อาร์กิวเมนต์จะไม่เท่ากัน ตัวแทนอะตอมṘ
พิมพ์1เพื่อ STDOUT และผลตอบแทนของ ในตอนท้ายของโปรแกรมค่าตอบแทนขั้นสุดท้ายจะถูกพิมพ์โดยปริยายดังนั้นเราจึงจบลงด้วยการส่งออกของ11
=`p`VV×`DQV
ความรวดเร็วในตัวเอง`
เปลี่ยนสีย้อมให้กลายเป็น monad โดยเรียกมันว่ามีอาร์กิวเมนต์ซ้ายและขวาเหมือนกัน ครั้งแรก=`
เปรียบเทียบอาร์กิวเมนต์นัย0กับตัวเองยอม1
ผลิตภัณฑ์ Cartesianอะตอมp
คาดว่ารายการเป็นข้อโต้แย้งของมันจึงส่งเสริมเลขที่1ในช่วง[1, ... , 1] = [1] p`
ใช้ผลิตภัณฑ์ Cartesian ของ[1]และตัวเองยอม[[1, 1]]
EVALอะตอมV
เปลี่ยนอาร์เรย์ทั้งหมดแบน (ที่มีเฉพาะตัวเลขและตัวอักษร) เป็นสตริงแล้วประเมินสตริงส่งผลให้โปรแกรม Jelly niladic [[1, 1]]มีการเปิดครั้งแรกใน[“11”]แล้วV
evals สตริงยอม[11] อีกครั้งV
จะเปิดอาร์เรย์นี้ลงใน"11"แล้ว evals มันจะให้ผลผลิต11
ตอนนี้×`
คูณ11กับตัวเองให้ผลผลิต121 ทศนิยมอะตอมหัน121เข้า[1, 2, 1]ที่ไม่ซ้ำกันอะตอมQ
ทิ้งที่สอง1และV
อีกครั้งจะเปลี่ยนรายชื่อของตัวเลขลงในจำนวนเต็มที่เกิดจากการเชื่อมโยงพวกเขากลับมา12
~A~A~A~A~A~A~A~A~A~A~A~A~A
~
คือbitwise NOT atom ด้วยสองของเลขคณิตสมบูรณ์ก็แผนที่อาร์กิวเมนต์Zเพื่อ~ Z = - (Z + 1) A
เป็นค่าสัมบูรณ์อะตอมจึงแผนที่- (Z + 1) = Z + 1 ด้วยค่าตอบแทนเริ่มต้น0 , สิบสำเนาของ~A
ผลตอบแทน13
⁷ṾṾṾw
ค่าคงที่⁷
เก็บอักขระบรรทัดใหม่'\ n'และเริ่มต้นอาร์กิวเมนต์และค่าส่งคืน
unevalอะตอมṾ
พยายามที่จะสร้างการแสดงสตริงของอาร์กิวเมนต์Zดังกล่าวว่าโปรแกรม Jelly ประกอบด้วยรหัสนี้จะกลับZ
การเรียกครั้งแรกตามหน้าที่ส่งคืนสตริง"" \ n "ซึ่งเป็นตัวอักษรที่แท้จริง การโทรครั้งต่อไปจะส่งคืน""”,” \ n " - ตัวอักษรคู่หนึ่ง การโทรครั้งที่สามและครั้งสุดท้ายจะส่งกลับ"", ",", ",,", "\ n" - กลุ่มของตัวอักษรห้าตัว
สุดท้ายดัชนีหน้าต่างอะตอมw
ส่งเสริมการโต้แย้งสิทธิของ'\ n'สตริง"\ n"และหาดัชนีแรกของสตริงย่อยที่เริ่มต้นด้วย"\ n" นี้จะส่งกลับ14
⁴ḟ€⁴Ṁ
⁴
เป็นค่าคงที่ 16 ตัวกรอง quicklink กรองแต่ละตัว ( ḟ€
) ส่งเสริมการโต้แย้งซ้าย16ถึงช่วง[1, …, 16]จากนั้นวนซ้ำองค์ประกอบต่างๆ
สำหรับแต่ละองค์ประกอบZ , ḟ⁴
จะถูกดำเนินการครั้งแรกในการส่งเสริมZเพื่อ[Z]แล้วลบทั้งหมด (ถ้ามี) การเกิดขึ้นของ16 นี้อัตราผลตอบแทนอาร์เรย์[[1], [2], ... , [14] [15], []]ที่อาร์เรย์สุดท้ายคือว่างเปล่าเพราะมันมี16
สุดท้ายสูงสุดอะตอมṀ
เลือก[15]
mmmmċ
modularอะตอมm
- เรียกว่ามีข้อโต้แย้งx (อาร์เรย์) และY (จำนวนเต็ม) มักจะใช้เวลาทุก| Y | THองค์ประกอบของxที่เริ่มต้นด้วยก่อนถ้าY> 0กับที่ผ่านมาหากY <0 อย่างไรก็ตามเมื่อy = 0มันจะคืนค่าx ที่ตัดกับการย้อนกลับ
อาร์กิวเมนต์จำนวนเต็มซ้าย0คือการส่งเสริมให้คนแรกที่จะ[0] สำเนาแรกของm
concatenates [0]กับตัวเองยอม[0, 0] สำเนาที่เหลือจะเปลี่ยนผลลัพธ์เป็น[0, 0, 0, 0]จากนั้น[0, 0, 0, 0, 0, 0, 0, 0]และในที่สุด[0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
ที่ผ่านมานับอะตอมċ
นับจำนวนครั้งที่ส่ออาร์กิวเมนต์0ปรากฏในอาร์เรย์ที่เกิดขึ้นกลับ16
ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ
ṭ
เป็นตะปูอะตอมและผนวกอาร์กิวเมนต์ซ้ายไปขวาหนึ่งของมัน ตั้งแต่ṭ
และต่อไปนี้ḍ
เป็น dyadic ทั้งหมดเรียกร้องให้ṭ
ผ่านอาร์กิวเมนต์นัย0ṭ
เป็นอาร์กิวเมนต์สิทธิที่จะ การโทรครั้งแรกจะส่งกลับ[0, 0] , ครั้งที่สอง[0, [0, 0]และครั้งที่แปดและครั้งสุดท้าย[0, [0, [0, [0, [0, [0, [0, [0] 0]]]]]]]]
ḍ
เป็นอะตอมที่แบ่งแยกได้ สำหรับอาร์กิวเมนต์xและyมันจะส่งกลับ1คือxคือหารด้วยy , 0ถ้าไม่ใช่ Ḅ
เป็น no-op สำหรับจำนวนเต็มดังนั้นḍḄ
ทดสอบ0สำหรับการหารด้วยจำนวนเต็มแต่ละตัวในอาร์เรย์ที่สร้างขึ้น 0คือหารด้วยตัวเองเพื่อให้เราได้รับ[1, [1, [1, [1, [1, [1, [1, [1, 1]]]]]]]]
ตอนนี้อะตอมแบบไบนารี่Ḅ
ทำงานบนอาเรย์แบน สำหรับคู่[a, b]มันก็ส่งกลับ2a + B ดังที่ได้กล่าวไว้ก่อนหน้านี้Ḅ
คือไม่มี-op สำหรับจำนวนเต็ม: อาร์กิวเมนต์จำนวนเต็มคจะเลื่อนตำแหน่งให้เป็น[C]และ[C]ในใด ๆฐานเป็นเพียงค
สายแรกที่จะḄ
ช่วยลด[1, 1]ไป3จึงยอม[1, [1, [1, [1, [1, [1, [1, 3]]]]]]] สายต่อไปจะช่วยลด[1, 3]ไป5อย่างใดอย่างหนึ่งต่อไป[1, 5]ไป7และอื่น ๆ จนเก้าḄ
ผลตอบแทน17
+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ
Ṇ
เป็นแบนตรรกะไม่อะตอมและแผนที่อาร์กิวเมนต์นัย0ที่จะ1 +
เป็นอะตอมการบวกดังนั้นแต่ละสิบแปดสำเนาของการ+Ṇ
เพิ่มค่าส่งคืนก่อนหน้า ( 0เริ่มต้น) โปรแกรมทั้งหมดจึงส่งกลับ18
CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
C
เป็นส่วนประกอบอะตอมและแผนที่อาร์กิวเมนต์Zไป1-z N
เป็นลบล้างอะตอมและแผนที่อาร์กิวเมนต์Zเพื่อ-z ร่วมกันCN
แผนที่Zไป- (1-z) = Z-1ดังนั้นแปดสำเนาเปิดอาร์กิวเมนต์นัย0เข้า-18 แอพลิเคชันสุดท้ายของอัตราผลตอบแทนC
1 - (-18) = 19
ĖḌĖḌ
การระบุอะตอมĖ
ระบุรายการในอาร์เรย์สร้างคู่ดัชนีค่า อาร์กิวเมนต์นัย0จะเลื่อนตำแหน่งให้เป็น[0]แล้วĖ
อัตราผลตอบแทน[[1, 0]] undecimalอะตอมแปลงอาร์เรย์แบนจากฐาน 10 ถึงจำนวนเต็มยอม[10]ในกรณีนี้โดยเฉพาะอย่างยิ่ง
สายที่สองที่จะĖ
แปลง[10]เข้า[[1, 10]]ซึ่งสองḌ
ในที่สุดก็เปลี่ยนไป[20]
21 - 30
ṫṣȦJṫȦ⁸ȦJ
หางอะตอมṫ
(เป็นคู่) เลือก postfix ของการโต้แย้งทางด้านซ้ายของตนที่เริ่มต้นที่ดัชนี (1-based และแบบแยกส่วน) ที่ระบุไว้ในข้อโต้แย้งสิทธิของการส่งเสริมการโต้แย้งจำนวนเต็มซ้ายxไป[x] เรียกว่าเมื่อมีข้อโต้แย้งทั้งการตั้งค่าเป็น0 , ṫ
ส่งกลับ[0]
ใด ๆ และทั้งหมดอะตอมȦ
ผลตอบแทนที่1ถ้าอาร์กิวเมนต์เป็น truthy และไม่มีเลขที่ระดับความลึกใด ๆ0มิฉะนั้น ที่นี่เราก็ใช้มันเป็นฟังก์ชั่นตัวตนที่จะกลับอาร์กิวเมนต์นัย0 การแบ่งที่อะตอมṣ
พาร์ติชั่นอาร์กิวเมนต์ซ้าย[0]ที่การเกิดขึ้นของอาร์กิวเมนต์ที่ถูกต้อง0ดังนั้นมันจึงส่งกลับ[[], []]ที่นี่
ดัชนีอะตอมJ
ทิ้งองค์ประกอบของค่าตอบแทนและแทนที่ด้วยดัชนีของพวกเขายอมช่วง[1, 2]ในกรณีนี้โดยเฉพาะ Ȧ
และṫ
การทำงานทั้งเป็นก่อนเพื่อให้พวกเขาลด[1, 2]เพื่อ postfix ที่เริ่มต้นที่ดัชนีสุดท้ายยอม[2]
ในการเชื่อมโยง niladic, คง⁸
ถือ[] นี่คือ nilad ที่เข้าใจไม่ได้นั่นคือมันไม่เข้ากับห่วงโซ่ แต่อย่างใด เป็นผลให้ค่าส่งคืนก่อนหน้า ( [2] ) ถูกพิมพ์ไปที่ STDOUT จากนั้นแทนที่ด้วยค่าของ nilad ( [] )
ตั้งแต่[]คือ falsy, Ȧ
แปลงมันเป็น0 J
อะตอมส่งเสริม0ไป[0]แล้วส่งกลับรายการของดัชนีของตน ( [1] ) ซึ่งจะมีการพิมพ์โดยปริยายเมื่อเสร็จสิ้นโปรแกรม
22
ตัวอักษรอื่น Repdigits ดูเหมือนจะเป็นสถานที่ที่ดีที่สุดในการใช้พวกเขา
“@ṃ»
สิ่งนี้ใช้การบีบอัดสตริง inbuilt ของ Jelly ดัชนีของ@และMในหน้ารหัส Jelly คือ64และ220และตัวอักษรของสตริงสามารถมี 250 ตัวอักษรแตกต่างกันดังนั้นนี่เป็นครั้งแรกคำนวณจำนวนเต็ม250 × 65 + 220 = 16,470
16470หารด้วย 3 ดังนั้นผลหาร16470/3 = 5490เข้ารหัสอักขระ ASCII ที่พิมพ์ได้หรือตัวป้อนบรรทัด มี 96 เหล่านี้และ5490 = 96 × 57 + 18ซึ่งหมายความว่าเราได้ถอดรหัสอักขระ ASCII พิมพ์ที่ 0-based ดัชนี18ซึ่งเป็น'2'
เราจะเหลือ57ซึ่งยังเป็นที่หารด้วย3ดังนั้นเชาวน์57/3 = 19 = 96 × 0 + 19เข้ารหัสอักขระ ASCII พิมพ์ที่ 0-based ดัชนี18ซึ่งเป็น'3'
ใบนี้0 ; กระบวนการถอดรหัสหยุดลง อักขระที่สร้างถูกต่อกันเป็นรูปแบบ"23"
!ḤḤ!
ปัจจัยอะตอม!
เปลี่ยนอาร์กิวเมนต์นัย0เข้า1 สองสวดของunhalveอะตอมḤ
เปิด1เข้า2แล้ว2เข้า4 ในที่สุด!
คำนวณ4! = 24
³HH
ในกรณีที่ไม่มีข้อโต้แย้งบรรทัดคำสั่งคง³
ถือ100 สองสวดของH
ผลัด100เข้า50แล้ว50เข้า25
ØaM
ค่าคงที่Øa
ถืออักษรตัวพิมพ์เล็ก สูงสุดอะตอมM
อัตราผลตอบแทนดัชนีทุกรายการสูงสุดและตั้งแต่Zเป็นตัวอักษรตัวพิมพ์เล็กใหญ่ที่สุดผลที่ได้คือ[26]
;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬
อะตอมของconcatenate ยี่สิบหกสำเนาต่อ;
ค่าส่งคืนเริ่มต้น0และยี่สิบหกอินสแตนซ์ของอาร์กิวเมนต์เริ่มต้น0ซึ่งสร้างอาร์เรย์จำนวน 27 ศูนย์
¬
เป็นอะตอมของNOT แบบโลจิคัลดังนั้น;¬
ผนวก1กับอาร์เรย์ของศูนย์ รายการถัดไปจะเป็นการ¬
ปฏิเสธองค์ประกอบทั้งหมดในอาร์เรย์ทำให้เรามีอาร์เรย์ 27 รายการและ 1 ศูนย์
ḅ
เป็นอะตอมunbaseและแปลงอาร์เรย์หลักจากอาร์กิวเมนต์ซ้ายจากฐานที่ระบุในอาร์กิวเมนต์ขวาเป็นจำนวนเต็ม ḅ¬
แปลงจาก unary เป็นจำนวนเต็มดังนั้นมันจึงทำการรวม สำหรับอาร์เรย์ของ 27 คนที่ส่งกลับ27
irið8c
ดัชนีของอะตอมi
ส่งเสริมอาร์กิวเมนต์ซ้าย0ไป[0]แล้วหาดัชนีของการโต้แย้งสิทธิของตน0ในอาร์เรย์ที่ยอม1
ช่วงอะตอมr
สร้างน้อยไปมากหรือมากไปน้อยช่วงจากมันเหลืออาร์กิวเมนต์หนึ่งที่เหมาะสมของมัน อาร์กิวเมนต์ที่เหมาะสมเป็นอาร์กิวเมนต์นัย0ดังนั้นอัตราผลตอบแทนนี้[1, 0] ภาวนาที่สองของการi
พบว่าดัชนีของ0ใน[1, 0]ยอม2
ð
เริ่มห่วงโซ่ dyadic ใหม่ เนื่องจาก chain ก่อนหน้านี้เป็น niladic ทั้งอาร์กิวเมนต์ซ้ายและขวาของ chain นี้จะเท่ากับค่าส่งคืนของ chain แรก ( 2 ) c
ในอะตอมชุดค่าผสม ด้วยอาร์กิวเมนต์ซ้าย8และการโต้แย้งสิทธิ2จะนับทุกที่ไม่ซ้ำกันเรียงลำดับ 2 การรวมกันของชุดของ8องค์ประกอบกลับ8C2 = 8! / (6! 2!) = 28
⁶ḲĠṂ°İṂĊ
คง⁶
ถืออักขระช่องว่างและตั้งข้อโต้แย้งและผลตอบแทนคุ้มค่าให้กับ'' คำอะตอมḲ
ส่งเสริมตัวละคร''เป็นสตริงเดี่ยว""และแยกมันในพื้นที่น่วม[[] []]
กลุ่มอะตอมĠ
กลุ่มดัชนีทุกองค์ประกอบที่เท่าเทียมกัน เนื่องจากองค์ประกอบทั้งสองของค่าส่งคืนล่าสุดมีค่าเท่ากันจึงส่งคืน[[1, 2]]ที่นี่ ขั้นต่ำอะตอมสารสกัดจากน้อยที่สุด (เท่านั้น) องค์ประกอบของอาร์เรย์นี้ยอม[1, 2]
ระดับอะตอม°
แปลงจำนวนเต็มทั้งจากองศา sexagesimal เรเดียนยอม1 °×2π / 360 ° = π / 180และ2 °×2π / 360 ° = π ผกผันอะตอมเตะแปรผกผันการคูณผลผลิต180 / π≈ 57.3และ90 / π≈ 28.6
จากนั้นṂ
อีกครั้งใช้เวลาอย่างน้อยยอม28.6 สุดท้ายceilอะตอมĊ
แปลง28.6ลงในวันที่ 29
œṡ¹ẆẆTUṖṖṖṖP
ตัวตนของอะตอม¹
ส่งกลับ0สำหรับอาร์กิวเมนต์นัย0 แยกรอบอะตอมœṡ
ส่งเสริมทั้งสองของอาร์กิวเมนต์ (ทั้ง0 ) ไป[0]แล้วแยก[0]รอบ subarrays ติดกันเท่ากับ[0] อัตราผลตอบแทนนี้[[] []]
เลื่อนหน้าต่างอะตอมẆ
สร้าง subarrays ต่อเนื่องกันทั้งหมดของอาร์กิวเมนต์ ตัวอย่างแรกเปลี่ยน[[], []]เป็น[[]], [[]], [[], []]] , ตัวอย่างที่สองเปลี่ยน[[[]], [[]], , []]]เป็น
[[[[]]], [[]], [[]], [] []], [[[]], [[]] [] []]] [[[]], [[]], [[] []]]]
จริงอะตอมT
แสดงรายการดัชนีทุกองค์ประกอบ truthy ไม่มีของอาร์เรย์ในระดับแรกว่างเปล่าดังนั้นจึงอัตราผลตอบแทนนี้[1, 2, 3, 4, 5, 6] คว่ำอะตอมU
กลับอาร์เรย์นี้ยอม[6, 5, 4, 3, 2, 1]
สี่สำเนาของป๊อปอะตอมṖ
ลบช่วงสี่องค์ประกอบที่ออกจากเราด้วย[6, 5] ในที่สุดผลิตภัณฑ์อะตอมP
แปลงอาร์เรย์นี้ในวันที่ 30
31 - 40
ȷ½RṪ
ȷ
เป็นชวเลข1 × 10 3 = 1000 รากอะตอม½
อัตราผลตอบแทน31.6ซึ่งช่วงอะตอมR
เปลี่ยนเป็น[1, ... , 31] ในที่สุดหางอะตอมṪ
สารสกัดจากองค์ประกอบสุดท้ายกลับมาวันที่ 31
LµdddddµFL
ยาวอะตอมL
ส่งเสริมการโต้แย้งโดยปริยาย0ไป[0] , แล้วจะใช้เวลาความยาวที่จะให้ผลผลิต1 µ
เริ่มห่วงโซ่ monadic ใหม่และผลลัพธ์1กลายเป็นอาร์กิวเมนต์
สำหรับอาร์กิวเมนต์xและy ที่ที่divmodอะตอมd
อัตราผลตอบแทน[x / y, x% Y] การโทรแต่ละครั้งจะมีy = 1ดังนั้นผลที่ได้จะเป็น[x, 0]
สายแรกจะเริ่มต้นด้วยx = 1น่วม[1, 0] d
ดำเนินการกับจำนวนเต็มเท่านั้นดังนั้นจึง vectorizes ในการโทรตามมา การโทรครั้งที่สอง[[1, 0], [0, 0]] , ครั้งที่สาม[[1, 0], [0, 0]], [0, 0], [0, 0]] , และอันที่ห้าและสุดท้ายคืออาร์เรย์ของความลึก 5 ที่มีหนึ่งและ 31 ศูนย์
µ
อีกครั้งจะเริ่มต้นโซ่ monadic ใหม่และอาร์เรย์จากก่อนจะกลายเป็นอาร์กิวเมนต์ แบนอะตอมF
unnests อาร์เรย์นี้ยอมอาร์เรย์แบนของหนึ่งเดียวและ 31 เลขศูนย์ สุดท้ายL
ต้องใช้ความยาวของผลกลับ32
33
repdigit อีกตัวอักษรอื่น
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ
ตัวอย่างของแต่ละห่ออะตอมแปลงอาร์กิวเมนต์Zเข้า[Z] ด้วยค่าส่งคืนเริ่มต้นที่0ทั้ง 34 อินสแตนซ์ให้ผลตอบแทนร่วมกัน[[[[[[[[[[[[[[]] [] [] [] [] [] [] [] [การควบคุมอย่างต่อเนื่อง [อย่างสำคัญอย่างหนึ่ง] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ในที่สุดความลึกอะตอมŒḊ
คำนวณความลึกสูงสุดของอาร์เรย์ที่เกิดขึ้นกลับ34
ẇɓæ«æ«æ«æ«æ«|æ«|
หน้าต่างอยู่อะตอมẇ
ส่งเสริมทั้งสองของอาร์กิวเมนต์ (ทั้งค่าเริ่มต้น0 ) ไป[0]แล้วการทดสอบถ้า ** [0] ** เกิดขึ้นเป็น subarray ต่อเนื่องกันของ[0] มันไม่ดังนั้นẇ
ผลตอบแทนที่1
ɓ
เริ่มห่วงโซ่ dyadic ใหม่ เนื่องจาก chain ก่อนหน้านี้เป็น niladic อาร์กิวเมนต์ทั้งซ้ายและขวาของ chain นี้จะเท่ากับค่าส่งคืนของ chain แรก ( 1 ) โซ่ใช้ประโยชน์จากอะตอมที่แตกต่างกันสองแบบคือบิตฮาร์ตซ้าย ( æ«
) และบิตหรือ OR ( |
)
โซ่ dyadic ที่เริ่มต้นด้วยสามหรือมากกว่านั้นเริ่มแรกเรียกว่า dyad แรกกับข้อโต้แย้งของโซ่ นี่นี้จะช่วยให้1 << 1 = 2 หกกลุ่มที่ตามมาจะถูกจัดกลุ่มเป็นคู่ (เรียกว่าส้อม ) ซึ่งกลุ่มที่อยู่ด้านขวาสุดจะถูกเรียกก่อนด้วยอาร์กิวเมนต์ของโซ่จากนั้นกลุ่มที่อยู่ทางซ้ายสุดจะถูกเรียกด้วยค่าส่งคืนก่อนหน้าทั้งสองด้าน
สำหรับการæ«æ«
ที่เราได้รับ2 << (1 << 1) = 2 << 2 = 8 จากนั้นæ«æ«
คำนวณ8 << (1 << 1) = 8 << 2 = 32 ตอนนี้|æ«
รับเรา32 | (1 << 1) = 32 | 2 = 34
ในที่สุด trailing |
จะทำหน้าที่คล้ายhookและถูกเรียกด้วยค่าส่งคืนก่อนหน้าเป็นอาร์กิวเมนต์ด้านซ้ายและอาร์กิวเมนต์ด้านขวาของ chain เป็นค่าที่ถูกต้อง สิ่งนี้ส่งคืน34 | 1 = 35
⁹ṚḢ²
ในกรณีที่ไม่มีการโต้แย้งที่สองคง⁹
ถือ256 กลับอะตอมส่งเสริม256อาร์เรย์[2, 5, 6]และฝืนมันจะให้ผลผลิต[6, 5, 2] จากนั้นหัวอะตอมḢ
สารสกัดจากองค์ประกอบแรกและตารางอะตอม²
ผลตอบแทน ** 6² = 36 *
‘‘‘0‘‘‘‘‘‘‘
เพิ่มอะตอม‘
เพิ่มอาร์กิวเมนต์โดย1เพื่อ‘‘‘
เปิดค่าตอบแทนเริ่มต้น0เข้า3 0ต่อไปนี้เป็น nilad ที่หาตัวจับยากเช่นมันไม่เข้ากับห่วงโซ่ แต่อย่างใด เป็นผลให้ค่าส่งคืนก่อนหน้า ( 3 ) ถูกพิมพ์เป็น STDOUT จากนั้นแทนที่ด้วยค่าของ nilad ( 0 )
ต่อไปนี้7สำเนาของ‘
เทิร์นนี้0ลงใน7ซึ่งจะมีการพิมพ์โดยปริยายเมื่อเสร็จสิ้นโครงการ
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ
พร่องอะตอม’
decrements โต้แย้งโดย1ดังนั้นสามสิบแปดสำเนาเปิดค่าตอบแทนเริ่มต้น0เข้า-38 ความแตกต่างแน่นอนอะตอมạ
คำนวณความแตกต่างไม่ได้ลงนามระหว่าง-38และอาร์กิวเมนต์นัย0กลับ38
-____---__________
-
เป็นชวเลข-1และตั้งข้อโต้แย้งและผลตอบแทนคุ้มค่าการเชื่อมโยงที่จะ-1 แต่ละ_
ตัวอย่างของอะตอมการลบ dyadic ซึ่งอาร์กิวเมนต์ที่ถูกต้องจะมีค่าเริ่มต้นเป็น-1หากไม่มี
ครั้งแรก-____-
คำนวณ(-1) - (-1) - (-1) - (-1) - (-1) = 3 -1ต่อไปนี้เป็น nilad ที่ไม่สามารถเข้าใจได้ดังนั้นค่าส่งคืนก่อนหน้า ( 3 ) จะถูกพิมพ์ไปยัง STDOUT แล้วแทนที่ด้วยค่าของ nilad ( -1 )
ถัดไป-_
คำนวณ(-1) - (-1) = 0โดยที่ตัวอักษร-
ตั้งค่าอาร์กิวเมนต์ซ้ายของ_
และใช้ค่าส่งคืนเป็นค่าที่ถูกต้อง เก้าสำเนาต่อไปนี้ของการ_
ลบอาร์กิวเมนต์เริ่มต้น-1จากค่าส่งคืนผลผลิต9ซึ่งจะถูกพิมพ์โดยปริยายเมื่อโปรแกรมเสร็จสิ้น
”(O
”(
เป็นตัวละครที่ตัวอักษรและลำดับอะตอมO
เงยหน้าขึ้นมองจุดรหัส Unicode ของผลผลิต40
41 - 47
⁵ḶxḶ⁵ị⁵ḶxḶḣṢ
ในกรณีที่ไม่มีอาร์กิวเมนต์บรรทัดคำสั่งที่สามคง⁵
ถือ10 unlengthอะตอมḶ
สร้างช่วง 0-based โดยเฉพาะ[0, ... , 9]สำหรับอาร์กิวเมนต์10เพื่อให้ทั้งสองด้านของการทำซ้ำในสถานที่x
อะตอม การจับคู่หลังองค์ประกอบของอาร์กิวเมนต์ซ้ายกับการทำซ้ำของขวาหนึ่งและทำซ้ำองค์ประกอบแต่ละครั้งจำนวนที่สอดคล้องกัน ด้วย[0, …, 9]เป็นทั้งอาร์กิวเมนต์ซ้ายและขวาเราจึงได้ศูนย์ศูนย์หนึ่งหนึ่งสองสอง ฯลฯ
ดัชนีลงในอะตอมị
เรียกองค์ประกอบของการโต้แย้งสิทธิของตนที่ดัชนีที่ระบุไว้ในหนึ่งซ้าย ด้วยอาร์กิวเมนต์ซ้าย10 ( ⁵
ด้านซ้าย) และการโต้แย้งสิทธิ[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ... , 9] (ผลก่อนหน้า) นี้จะช่วยให้4
chain จนถึงจุดนี้ตามด้วย nilad ที่ไม่สามารถเข้าใจ⁵
ได้ดังนั้นค่าส่งคืนก่อนหน้า ( 4 ) ในพิมพ์ไปยัง STDOUT ค่าส่งคืนถูกตั้งค่าเป็น10และส่วนที่เหลือของ chain จะแยกวิเคราะห์ตามปกติ
ก่อนที่⁵ḶxḶ
จะให้ผลผลิตอาร์เรย์[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ... , 9] เวลานี้เราเรียกว่าเรียงอะตอมṢ
ในอาร์กิวเมนต์10ซึ่งส่งเสริม10ไป[1, 0]แล้วเรียงมันให้ผลผลิต[0, 1] หัว dyadicอะตอมตอนนี้เรียกคำนำหน้าของความยาว0และ1จากผลการไปทางซ้ายออกจากเราด้วย[[] [1]] เมื่อพิมพ์จะไม่มีสิ่งใดนอกจาก1จะยังคงปรากฏให้เห็น
⁽{ʂ%⁽{}
⁽
และตัวละครสองตัวต่อไปนี้เป็นตัวอักษรตัวเลข ถ้าเจและkเป็นจุดรหัสของพวกเขาในหน้ารหัสวุ้นและ(ญ, k) <(124, 250)ที่เราได้รับจำนวนเต็ม1,001 + 250J + K จุดโค้ดของ'{' , '}'และ'ʂ'คือ123 , 125และ167ดังนั้นตัวอักษรด้านซ้ายจะประเมินเป็น1001 + 250 × 123 + 167 (= 31918)ในขณะที่ด้านขวาจะประเมินเป็น1001 + 250 × 123 + 125 (= 31876)
ตั้งแต่จำนวนเต็มซ้ายน้อยกว่าสองเท่าขวาหนึ่งผลที่ได้คือ( ... + 167%) ( ... + 125) = ( ... + 167) - ( ... + 125) = 167- 125 = 42
ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®
สับเปลี่ยนอะตอมẊ
randomizes ลำดับขององค์ประกอบอาร์กิวเมนต์ของ; อาร์กิวเมนต์ตัวเลขzถูกเลื่อนระดับเป็นช่วง[1, …, z]ล่วงหน้า สำหรับอาร์กิวเมนต์นัย0ช่วงนี้ว่างเปล่าและẊ
อัตราผลตอบแทน[] ทุกอะตอมẠ
ผลตอบแทนที่1ถ้าทุกองค์ประกอบอาร์กิวเมนต์เป็น truthy, 0หากไม่ได้ เนื่องจากอาร์เรย์ที่ว่างเปล่าไม่มีองค์ประกอบที่เป็นเท็จẠ
ส่งคืน1ที่นี่
ซิปกับอะตอมż
(เป็นคู่) ใช้อาร์กิวเมนต์xและy ที่และ transposes คู่[x, y] สำหรับจำนวนเต็มxและy ที่นี้ก็มีอัตราผลตอบแทน[[x, y]]เพื่อการนี้โดยเฉพาะż
ที่เรียกว่ามีข้อโต้แย้ง1และ0 (อาร์กิวเมนต์นัย) ผลตอบแทน[[1, 0]] EVAL dyadicอะตอมv
เปลี่ยนอาร์เรย์แบนทั้งหมด (ที่มีเฉพาะตัวเลขและตัวอักษร) ผมอาร์กิวเมนต์ซ้ายเป็นสตริงแล้วสตริงประเมินผลโปรแกรม Jelly เอกที่มีการโต้แย้งสิทธิของเป็นข้อโต้แย้งโปรแกรม ตั้งแต่["10"]ประกอบด้วย แต่เพียงผู้เดียวของตัวอักษรนี้ละเว้นอาร์กิวเมนต์ขวาของv
และก็จะส่งผลใน[10]
การคัดลอกด่วน©
จะแนบไปกับv
และคัดลอกผลลัพธ์ไปยังการลงทะเบียน อะตอมเรียกคืน®
(nilad) ที่เกิดขึ้นในภายหลังจะดึงข้อมูล[10]จากการลงทะเบียน
สามสำเนาของżv
การทำงานเป็นก่อนที่จะทำแผนที่[10]เพื่อ[[10 0]เพื่อ[100]เพื่อ ... เพื่อ[10000] เพื่ออะตอมọ
ทดสอบกี่ครั้งอาร์กิวเมนต์ซ้ายคือหารด้วยขวาหนึ่งของดังนั้นนี่มันคำนวณคำสั่งของ10 (ความจริงด้วย®
) ใน10000 = 10 4น่วม[4]
ต่อไปนี้®
เป็น nilad ที่ไม่สามารถเข้าใจได้ดังนั้นค่าส่งคืนก่อนหน้า ( [4] ) จะถูกพิมพ์เป็น STDOUT จากนั้นแทนที่ด้วยค่าของ nilad ( 10 ) เราใช้Ạ
ต่อไปยอม1 (นี่เป็นสิ่งจำเป็นในฐานะ nilad ตามด้วย dyad จะต้องแยกวิเคราะห์ในจุดนี้)
เมื่อก่อนżvżvżv
ผนวกสาม zeroes กับค่าตอบแทนในปัจจุบันหัน1เข้า[1000] สุดท้ายọ®
คำนวณลำดับที่10ใน1000 = 10 3และ3จะถูกพิมพ์ไปที่ STDOUT เมื่อโปรแกรมเสร็จสิ้น
44
อีกอันหนึ่งกลับกลายเป็นอีกความหมายที่แท้จริง
111111l11&K1111111Kl11&
แรกและสำคัญที่สุดตัวหนังสือ111111
ชุดอาร์กิวเมนต์และค่าตอบแทนเริ่มต้น111111 การวิ่งอื่น ๆ ของ1
ยังเป็นตัวอักษร
l
คืออะตอมลอการิทึมซึ่งคำนวณลอการิทึมของอาร์กิวเมนต์ซ้ายไปยังฐานที่ระบุในหนึ่งค่า เมื่อเรียก111111มีการโต้แย้งสิทธิ11เราได้รับเข้าสู่ระบบ11 111111 ≈ 4.85
คำอะตอมK
ร่วมอาร์กิวเมนต์รายการที่ช่องว่างหลังจากการส่งเสริมตัวเลข / ตัวอักษรZเพื่อ[Z] ที่นี่เราก็ใช้มันเพื่อเปิดการโต้แย้งการเชื่อมโยงของ111111เข้า[111111] (เราไม่ต้องการอาเรย์ที่นี่ แต่เราหมดอะตอมตัวตน) ค่าบิตและอะตอม&
ใช้ค่าส่งคืนทั้งสองด้านแล้วแปลงค่าเป็นจำนวนเต็มถ้าจำเป็นและคำนวณค่าบิตและ เฉพาะในกรณีนี้ก็จะส่งกลับ[4.85 และ 111111] = [4 & 111111] = [4]
ต่อไปนี้1111111
เป็น nilad ที่ไม่สามารถเข้าใจได้ดังนั้นค่าส่งคืนก่อนหน้า ( [4] ) จะถูกพิมพ์ไปยัง STDOUT แล้วแทนที่ด้วยค่าของ nilad ( 1111111 ) K
จากนั้นก็หันจำนวนเต็มนี้ลงใน[1111111] (นี่ไม่จำเป็นอีกครั้งจริง ๆ แต่ nilad ตามด้วย dyad จะสามารถแยกวิเคราะห์ได้ในจุดนี้)
เมื่อก่อนl11
คำนวณเข้าสู่ระบบ11 1111111 ≈ 5.81แล้ว&
ส่งกลับ[5.81 และ 111111] = [5 และ 111111] = [5]
,SS
ỊỊ,ÇS
ÇÑÇÇÇÑ
นี่เป็นโปรแกรมเดียวที่ประกอบด้วยลิงค์ที่ผู้ใช้กำหนดหลายลิงค์ ลิงค์สุดท้ายคือลิงค์หลักและเรียกใช้งานเมื่อโปรแกรมเริ่มทำงานส่วนที่เหลือเป็นลิงค์ช่วยเหลือ Quick Ç
หมายถึงลิงก์ที่อยู่เหนือลิงก์ปัจจุบันและดำเนินการแบบ monadically ในทำนองเดียวกันตัวย่อÑ
จะอ้างถึงลิงค์ด้านล่างหนึ่งตัวปัจจุบัน (ล้อมรอบ) และเรียกใช้งานแบบ monadically
ลิงค์ด้านบนประกอบด้วยอะตอมคู่,
- สีย้อมที่เปลี่ยนอาร์กิวเมนต์xและyเป็น[x, y] - และผลรวมอะตอมS
- monad ที่ส่งเสริมอาร์กิวเมนต์จำนวนเต็มzเป็น[z]และลดอาร์กิวเมนต์อาเรย์ด้วยการเพิ่ม เมื่อการเชื่อมโยง,SS
เรียกว่ามีข้อโต้แย้งจำนวนเต็มnก็คำนวณΣ [n, Σn] = Σ [N, N] = 2n
ลิงค์กลางประกอบด้วยอะตอมข้างต้นความรวดเร็วดังกล่าวÇ
และอะตอมที่ไม่มีนัยสำคัญỊ
- monad ที่ให้ค่า1สำหรับการโต้แย้งเชิงตัวเลขzกับ-1 ≤ z ≤ 1แต่สำหรับ0ทั้งหมด การใช้Ị
สองครั้งกับอาร์กิวเมนต์จำนวนเต็มnจะแทนที่ด้วย1เป็นหลักเนื่องจากเอาต์พุตของอันแรกỊ
( อินพุตของอันที่สอง) ไม่มีนัยสำคัญเสมอ ผลที่ได้นี้จะถูกจับคู่แล้วกับค่าตอบแทนของÇ
(เรียกว่ามีอาร์กิวเมนต์n ) S
และส่งผลให้ทั้งคู่จะลดลง โดยรวมเราคำนวณΣ [(| n | ≤ 1) ≤ 1 2n] = Σ [1, 2n] = 2n + 1
ด้วยการเชื่อมโยงตัวช่วยสองตัวเหล่านี้แทนที่ลิงก์หลักสามารถสร้างจำนวนเต็มที่ไม่เป็นลบได้โดยดูที่เลขฐานสอง ด้วยค่าส่งคืนเริ่มต้นที่0ลูกโซ่ÇÑÇÇÇÑ
คำนวณผลลัพธ์สุดท้าย(((((0 × 2 + 1) × 2) × 2 + 1) × 2 + 1) × 2 + 1) × 2 = ((5 × 2 + 1) x 2 + 1) × 2 = 46
ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn
ที่สำคัญต่อไปอะตอมพบว่าจำนวนที่เล็กที่สุดในเชิงบวกที่สำคัญที่เป็นอย่างเคร่งครัดมากกว่าอาร์กิวเมนต์ ด้วยค่าเริ่มต้นผลตอบแทน0สวดสิบห้าของการÆn
คำนวณตัวเลขที่สำคัญที่สิบห้าซึ่งเป็น47