คำถามในหัวข้อ '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 มุมมอง
schedule
06.12.2023