ฉันกำลังต่อสู้กับความเข้าใจ callCC จริงๆ ฉันได้รับพลังแห่งการสานต่อและฉันใช้แนวคิดนี้ในบางโครงการของฉันเพื่อสร้างแนวคิดเจ๋ง ๆ cont :: ((a->r)->r)-> Cont r a
แต่ไม่เคยมีฉันต้องการที่จะใช้สิ่งที่มีความสามารถมากกว่า
หลังจากใช้แล้วมันสมเหตุสมผลมากว่าทำไมพวกเขาถึงเรียก Cont Cont ว่าเป็นแม่ของ monads ทั้งหมดใช่เลยฉันไม่เข้าใจว่าจะต้องใช้เมื่อไรcallCC
และนั่นคือคำถามของฉัน
reset
shift
ฉันใช้มันเพื่อกำหนดภาษา eembedded ที่สามารถหยุดชั่วคราวได้จนกว่าการกระทำที่กำหนดจะได้รับการแก้ไขโดยกระบวนการอื่นและจากนั้นจะดำเนินการต่อด้วย "การต่อเนื่อง" ที่กำหนด บางทีฉันอาจจะให้ความประทับใจกับการมีประสบการณ์มากมายกับ Cont Monad แต่ไม่มากจริง ๆ ฉันแค่อยากจะเข้าใจ callCC
Cont
อย่างไร? เมื่อคุณบอกว่าคุณไม่จำเป็นต้องใช้สิ่งที่มีประสิทธิภาพมากกว่าcont
นั่นหมายความว่าคุณไม่ได้ใช้reset
หรือshift
ไม่?