คำถามในหัวข้อ 'tail-recursion'

เหตุใดหางนี้จึงเกิดซ้ำ
ตรวจสอบรหัสสกาล่านี้: def rec(n: Int) { if (n > 1) { val d = n / 2 rec(d) // if (d > 1) // abort loop rec(n/d) } } รหัสนี้จะส่งผลให้เกิดการวนซ้ำไม่รู้จบ เนื่องจากการเพิ่มประสิทธิภาพแบบเรียกซ้ำแบบหางฉันจึงไม่ได้รับ...
391 มุมมอง
schedule 19.01.2024

การเข้าถึงความลึกของสแต็กการโทรใน Scheme
เพื่อแสดงให้เห็นถึงประสิทธิภาพของการเรียกซ้ำส่วนท้าย ฉันต้องการวิธีเข้าถึงความลึกของ call stack แบบไดนามิกใน Scheme มีวิธีการทำเช่นนี้หรือไม่? ถ้าไม่ มีวิธีการทำเช่นนี้ในภาษาการทำงานหลักอื่น ๆ (OCaml, Haskell ฯลฯ ) หรือไม่?
182 มุมมอง