4
การแก้ปัญหาสามปัญหาที่เปิดอยู่กับ Oracle ที่หยุดทำงาน
คุณได้รับฟังก์ชั่น: h1 (f, * args) และ h2 (f, * args) ทั้งสองเป็นวิธีที่กำหนดไว้แล้วสำหรับคุณ (ที่นี่เครื่องหมายดอกจันระบุจำนวนตัวแปรของการขัดแย้ง) f คือฟังก์ชั่น * args คือรายการพารามิเตอร์ที่จะส่งผ่านไปยังฟังก์ชันนั้น h1 ส่งคืนค่าบูลีน: เป็นจริงถ้าฟังก์ชั่น f หยุดชะงักเมื่อเรียกใช้บน * args และ False หากไม่ (สมมติว่าเครื่องที่รันอยู่จะมีเวลาและหน่วยความจำไม่สิ้นสุดและล่าม / คอมไพเลอร์สำหรับภาษาที่คุณกำลังเขียน รู้วิธีจัดการกับเวลาและหน่วยความจำไม่สิ้นสุด) ถ้า f (* args) จะทำการเรียกไปยัง h1 หรือ h2 เสมอ h1 จะส่งข้อยกเว้น h2 ทำตัวเหมือน h1 ยกเว้นว่าถ้า f ทำการเรียกไปยัง h1 h2 …