หน้า"แผนการขั้นสูง: บาง Naughty Bits"ระบุ:
Continuations เป็นโครงสร้างการควบคุมการไหลที่ทรงพลังซึ่ง อาจมีโครงสร้างการไหลของการควบคุม [... ] อื่นเกือบ
ผมคิดว่าโครงการของcall/cc
ถูกที่เกี่ยวข้อง (*) ปีเตอร์ร่อนลงของผู้ประกอบการเจสามารถนำมาใช้ในการดำเนินการใด ๆโครงสร้างการควบคุมการไหลที่รู้จักกัน?
ด้วย "โครงสร้างการควบคุมการไหล" ฉันกำลังคิดถึงคำอธิบายของวิกิพีเดียเป็นพิเศษเช่นข้อยกเว้น coroutines เธรดสีเขียวและอื่น ๆ
มีตัวอย่างของโครงสร้างการควบคุมการไหลที่ไม่สามารถนำไปใช้งานได้call/cc
หรือไม่?
(*) ฉันไม่สามารถที่จะขุดกระดาษใด ๆ ที่ระบุว่าcall/cc
มีประสิทธิภาพเท่ากับตัวดำเนินการ J บทความโดย Felleisen (ซึ่งฉันไม่ได้อ่านและยอมรับว่ามีปัญหาในการทำความเข้าใจอย่างเต็มที่) ตรวจสอบเรื่องนี้และดูเหมือนจะสรุปได้ว่าถึงแม้ว่าพวกเขาจะอยู่ในชั้นเรียนที่มีความซับซ้อนแตกต่างกันก็ตาม
(โปรดทราบว่าฉันได้อัปเดตคำถามตามความคิดเห็นด้านล่าง)
ปรับปรุง
จากคำตอบที่ยอดเยี่ยมโดย @Neel ด้านล่างฉันได้ดูไซต์ที่แสดงความคิดเห็นเกี่ยวกับความต่อเนื่องที่คั่นและไม่ จำกัดและดูเหมือนว่าในขณะที่การcall/cc
ไม่ถูก จำกัด นั้นไม่เพียงพอ ในขณะที่ชั้นแรกที่คั่นต (ชอบshift/reset
) สามารถนำมาใช้ดูเหมือนว่าจะแสดงโครงสร้างการควบคุมการไหลใด ๆ
call/cc
ที่ไม่สามารถแสดงข้อยกเว้นในกรณีที่ไม่มีของรัฐ ( ณ Thielecke ไปในการชี้ให้เห็นข้อยกเว้นสามารถดำเนินการโดยผ่านรอบสองตหนึ่งสำหรับโปรแกรมและอื่น ๆ สำหรับการจัดการข้อยกเว้น แต่ที่ต้องมีมากกว่าเพียงแค่call/cc
.)
amb
escape, -operator และอื่น ๆ