ฟังก์ชั่นการเรียกซ้ำแบบดั้งเดิมจะถูกกำหนดเหนือจำนวนธรรมชาติ อย่างไรก็ตามดูเหมือนว่าแนวคิดควรสรุปกับชนิดข้อมูลอื่น ๆ ทำให้ผู้ใช้สามารถพูดคุยเกี่ยวกับฟังก์ชั่นการเรียกซ้ำแบบดั้งเดิมที่แม็พรายการกับต้นไม้ไบนารีตัวอย่างเช่น โดยการเปรียบเทียบฟังก์ชัน recursive บางส่วนเหนือจำนวนธรรมชาติทั่วไปฟังก์ชั่นการคำนวณในประเภทข้อมูลใด ๆ และฉันต้องการที่จะเข้าใจวิธีการทำให้ลักษณะทั่วไปเหมือนกันสำหรับฟังก์ชันเรียกซ้ำแบบดั้งเดิม
โดยสังเขปถ้าฉันต้องนิยามภาษาที่จำเป็นอย่างง่ายที่อนุญาตให้ดำเนินการขั้นพื้นฐานพูดรายการต่างๆ (เช่นการต่อข้อมูลจับหัวและส่วนท้ายการเปรียบเทียบองค์ประกอบ) และรูปแบบของการทำซ้ำที่ต้องรู้ล่วงหน้าว่าจะเกิดซ้ำกี่ครั้ง ( เช่นวนซ้ำองค์ประกอบในรายการที่ไม่เปลี่ยนรูป) จากนั้นภาษาดังกล่าวในที่สุดควรจะสามารถคำนวณฟังก์ชั่นแบบเรียกซ้ำแบบดั้งเดิมมากกว่ารายการ แต่ฉันจะเข้าใจสิ่งนี้อย่างเป็นทางการได้อย่างไรและโดยเฉพาะอย่างยิ่งฉันจะพิสูจน์ได้อย่างไรว่าภาษาของฉันคำนวณฟังก์ชันการเรียกซ้ำแบบดั้งเดิมทั้งหมดในรายการและไม่ใช่แค่ส่วนย่อยของพวกเขา
เพื่อความชัดเจนฉันสนใจในการทำความเข้าใจกับฟังก์ชั่นการเรียกซ้ำแบบดั้งเดิมว่าเป็นฟังก์ชั่นคลาสที่กำหนดไว้อย่างดี (ถ้าเป็นจริง) แทนที่จะเป็นเพียงการปฏิบัติการเรียกซ้ำแบบดั้งเดิม ฉันจะสนใจพอยน์เตอร์สำหรับทุกสิ่งที่เขียนบนการเรียกซ้ำแบบดั้งเดิมบนโครงสร้างข้อมูลทั่วไปหรือในบริบทอื่นนอกเหนือจากจำนวนธรรมชาติ
ปรับปรุง:ฉันอาจได้พบคำตอบในกระดาษที่เรียกว่า Walther Recursionโดย McAllester และ Arkoudas (การดำเนินการของCADE 1996 ) สิ่งนี้ดูเหมือนจะมีการเรียกซ้ำแบบดั้งเดิมแบบทั่วไปรวมถึงการเรียกซ้ำแบบ Walther ที่ทรงพลังกว่า ฉันตั้งใจจะเขียนคำตอบเองเมื่อฉันย่อเรื่องนี้ แต่ในระหว่างนี้บันทึกนี้อาจเป็นประโยชน์กับผู้อื่นด้วยคำถามเดียวกัน