Ṅ×ịß
ลองออนไลน์!
ลิงก์ TIO เพิ่มส่วนท้ายเพื่อเรียกใช้ฟังก์ชันด้วยตัวอย่างโปรแกรม Tip ที่แสดงในหน้า Esolang ("wrapper อัตโนมัติ" ของ M เพื่อเรียกใช้ฟังก์ชั่นราวกับว่าพวกเขาเป็นโปรแกรมที่ไม่สามารถจัดการหมายเลขเหตุผลหรือจุดคงที่หรืออย่างน้อย ไม่ทราบวิธีที่จะบอกวิธีการดังนั้นฉันต้องทำให้ฟังก์ชั่นเป็นโปรแกรมเต็มรูปแบบด้วยมือเพื่อให้สามารถเรียกใช้)
นี่จะพิมพ์เอาต์พุตดีบักที่มีประโยชน์ โปรแกรมไม่สามารถเขียนใน 3 ไบต์ใน M เพราะโปรแกรมที่ประกอบด้วยสาม dyads ทำให้เกิดกรณีพิเศษใน parser ดังนั้นฉันต้องเพิ่มคำสั่งพิเศษเพื่อหลีกเลี่ยงกรณีพิเศษ ทำให้มันṄ
(พิมพ์ขึ้นบรรทัดใหม่) อย่างน้อยก็มีวัตถุประสงค์ที่เป็นประโยชน์
ı
i=−1−−−√
ห้ามใช้ I / O (นอกเหนือจากหยุด / ไม่หยุด) I / O เป็นส่วนเสริมของเคล็ดลับ (ไม่ใช่ส่วนหนึ่งของภาษานั้น) และไม่จำเป็นต้องใช้สำหรับทัวริง
คำอธิบาย / พื้นหลัง
Ṅ×ịß
Ṅ Print {the left argument} and a newline; also resolves a parser ambiguity
ị {The left argument}th element of {the right argument}, wrapping on OoB
× Multiply {the left argument} by {the chosen element}
ß Recursive call; arguments: {the product} and {the same right argument}
[1,2,3]
[1,2,3,1,2,3,1,2,3,…]
rx+sซึ่งเป็นพหุนามและ "การแปลงฐาน" builtin ที่ภาษากอล์ฟจำนวนมากมีจริง ๆ แล้วผู้ประเมินพหุนามมีวัตถุประสงค์ทั่วไปในการปลอมตัว ดังนั้นสิ่งที่เราต้องทำคือทำดัชนีในรายการของตัวเลข, แปลงฐานพวกมันแล้วเราก็เสร็จแล้วใช่ไหม?
xx
ḅ
x⊕(x⊗y)x⊗y⊕. แน่นอนว่าเราสามารถแทนที่พฤติกรรมการผูกมัดกับทุกสิ่งที่เราต้องการได้ แต่นั่นจะมีค่าใช้จ่ายทั้งไบต์และรายการภาษากอล์ฟสำหรับคำถามนี้เริ่มสั้นลงจนมีจำนวนมาก
ดังนั้นฉันจึงมองกลับไปและประเมินอีกครั้ง มีการดำเนินการใด ๆ ที่เราสามารถใช้แทนการประเมินพหุนาม เป็นการดีที่คนที่สับเปลี่ยนดังนั้นเราไม่ต้องกังวลเกี่ยวกับคำสั่งโต้แย้ง? หลังจากนั้นไม่นานฉันก็รู้ว่าฟังก์ชั่น Collatz นั้นซับซ้อนกว่าที่พวกเขาต้องการ
s
และแน่นอนการแปลงฐานแตกต่าง ( ḅ
) คูณ ( ×
) เป็นสับเปลี่ยนและทำให้มันไม่สำคัญสิ่งที่สั่งการขัดแย้งที่มีอยู่ใน. ดังนั้นสิ่งที่เราต้องเขียนถูก×ị
แล้ววางโปรแกรมเป็น recursion อนันต์กับß
, และเรามีภาษาทัวริงที่สมบูรณ์ ขวา?
(x⊙y)⊕(x⊗y)¹×ịß
¹
¹
Ṅ
เป็นตัวเลือกที่ดีเพราะสร้างผลลัพธ์การดีบักที่มีประโยชน์
เป็นไปได้สามไบต์ นอกจากว่าฉันจะพลาดบางสิ่งบางอย่างไม่ใช่กับตัวเลือกเฉพาะของการใช้และการใช้ภาษา แต่ ณ จุดนี้มันก็ดูเหมือนจะเป็นไปได้อย่างแน่นอนเนื่องจากมีหลายวิธีที่จะทำในสี่และทัวริงที่สมบูรณ์ ภาษาที่คุณสามารถใช้งานได้
eval
การแก้ปัญหาที่ไม่สำคัญเหมือนกัน