โหมโรงเป็นภาษาการเขียนโปรแกรมลึกลับซึ่งมีข้อ จำกัด น้อยมาก แต่ผิดปกติในสิ่งที่ถือว่าเป็นโปรแกรมที่ถูกต้อง บล็อกใด ๆ ของข้อความ ASCII ที่พิมพ์ได้ ("บล็อก" หมายความว่าบรรทัดของ ASCII ที่พิมพ์ได้จะถูกคั่นด้วยบรรทัดใหม่ - 0x0A) ถูกต้องหากว่า:
- ทุกคน (แนวตั้ง) คอลัมน์ของข้อความที่มีอย่างหนึ่งมากที่สุดของและ
(
)
- ละเว้นตำแหน่งแนวตั้งของพวกเขา
(
และ)
มีความสมดุลนั่นคือแต่ละ(
คู่จะถูกจับคู่กับหนึ่ง)
ไปทางขวาของมันและในทางกลับกัน
เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดสตริงที่มี ASCII ที่พิมพ์ได้และขึ้นบรรทัดใหม่พิจารณาว่าเป็นโปรแกรม Prelude ที่ถูกต้องหรือไม่ คุณสามารถรับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ฟังก์ชัน ผลลัพธ์อาจถูกส่งคืนหรือพิมพ์ไปยัง STDOUT โดยใช้ค่าความ จริง /ค่าคงที่สองค่าที่คุณเลือก
คุณต้องไม่สมมติว่าอินพุตเป็นรูปสี่เหลี่ยม
นี่คือรหัสกอล์ฟดังนั้นการส่งที่สั้นที่สุด (เป็นไบต์) ชนะ
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรมโหมโรงที่ถูกต้อง (อันที่จริงมันเป็นโปรแกรมนำเสนอจริง ):
?1-(v #1)-
1 0v ^(# 0)(1+0)#)!
(#) ^#1-(0 #
1(# 1) v # - 1+)
vv (##^v^+
? v-(0 # ^ #)
?
1+ 1-!
และนี่คืออินพุตจำนวนหนึ่งซึ่งไม่ถูกต้องทั้งหมด :
#(#(##)##)##(
)##(##(##)#)#
#(#)
)###
#(##
(##)
(##)
(#)#
(##)
(###
#(#)
(##)
#(#)
###)
#()#
()##
#(#)##
###
###(#)
)
และ (
2 มันควรจะไม่เพียง 1 ต่อบรรทัด?