มีคำอธิบายที่เป็นประโยชน์ของฟิวเจอร์สหรือสัญญาในแง่ของทฤษฎีหมวดหมู่หรือไม่? โดยเฉพาะอย่างยิ่งสิ่งที่คู่แท้ของอนาคตจะเป็นอย่างไร
มีคำอธิบายที่เป็นประโยชน์ของฟิวเจอร์สหรือสัญญาในแง่ของทฤษฎีหมวดหมู่หรือไม่? โดยเฉพาะอย่างยิ่งสิ่งที่คู่แท้ของอนาคตจะเป็นอย่างไร
คำตอบ:
มันเกิดขึ้นฉันกำลังเขียนบทความเกี่ยวกับเรื่องนี้ตอนนี้ IMO วิธีคิดที่ดีเกี่ยวกับฟิวเจอร์สหรือคำสัญญาคือในแง่ของการติดต่อกันของ Curry-Howard สำหรับตรรกะทางโลก
โดยพื้นฐานแล้วแนวคิดเบื้องหลังฟิวเจอร์สคือมันเป็นโครงสร้างข้อมูลที่แสดงถึงการคำนวณที่กำลังดำเนินการอยู่และคุณสามารถซิงโครไนซ์ได้ ในแง่ของตรรกะชั่วขณะนี้เป็นผู้ประกอบการในที่สุดนี่เป็นโครงสร้างแบบ monadic: r e t u r n : A → ◊ A b i n d : ( A → ◊ B ) → ◊ A → ◊ A → ◊ B ที่r e t คุณr n
then
คู่กับผู้ประกอบการในที่สุดเป็นผู้ประกอบการมักจะ◻ของตรรกะชั่วคราวซึ่งบอกว่าในทุกทันทีคุณจะได้รับ เมื่อคุณส่งผ่านความหมายของ Kripke ของตรรกะเชิงกาลเวลา (ซึ่งคุณเพิ่งเป็นแบบจำลองความสามารถในการพิสูจน์) ไปยังความหมายแบบ categorial ของλ -calculus (ซึ่งคุณจำลองแบบ lambda-term / proofs ด้วย) มันกลายเป็นว่ามีหลายวิธีในการทำเช่นนี้
A
ส่วนใหญ่ตามธรรมชาติ (IMO) สิ่งที่จะต้องทำคือการใช้ซึ่งอนุญาตให้คุณได้รับ (ที่แตกต่างกันอาจ) ในแต่ละทันที จากนั้นคุณสามารถดูรูปแบบ comonadic ของ functional reactive programming (FRP) (เสนอครั้งแรกโดยTarmo Uustalu และ Varmo Vene ) เป็นรูปแบบการเขียนโปรแกรมคู่กับ monadic ด้วยฟิวเจอร์สA
อย่างไรก็ตาม comonadic -calculus ตามที่พวกเขาแนะนำแม้จะมีความสง่างาม แต่ก็ทำให้เกิดการสูญเสียความหมายอย่างรุนแรงเมื่อเทียบกับการเขียนโปรแกรมอย่างชัดเจนกับลำธารตั้งแต่ประเภทของถ่านหินฟรีที่พวกเขาใช้จะมีองค์ประกอบระดับโลกน้อยเกินไป โดยเฉพาะจุดคงที่
Nick Benton และฉันได้โต้แย้งการเขียนโปรแกรมอย่างชัดเจนด้วยกระแสข้อมูลในบทความUltrametric Semantics of Reactive Programs ของเรา ต่อจากนั้นอลันเจฟฟรีย์แนะนำให้ใช้ LTL เป็นระบบการพิมพ์ในกระดาษของเขาชนิด LTL FRPมีข้อสังเกตว่าโวล์ฟกัง Jeltsch ยังทำในกระดาษของเขาไปสู่ความหมายหมวดหมู่ทั่วไปสำหรับการเชิงเส้นเวลาชั่วขณะและการเขียนโปรแกรมลอจิกปฏิกิริยาการทำงาน
ความแตกต่างระหว่างมุมมองนิคกับฉันและสิ่งที่อลันและโวล์ฟกังเข้าใจได้ดีที่สุดคือ (IMO) โดยการเปรียบเทียบการก่อสร้างใน Birkedal et al. ขั้นตอนแรกในทฤษฎีโดเมนที่ได้รับการปกป้องแบบสังเคราะห์: ขั้นตอนการจัดทำดัชนีใน topos ต้นไม้ด้วยกระดาษของอลัน Topos ของต้นไม้ (presheaves มากกว่าจำนวนธรรมชาติที่สั่งตามขนาด) นั้นคล้ายกับหมวดหมู่ของพื้นที่ ultrametric Nick และฉันใช้ แต่ง่ายกว่ามากเมื่อเปรียบเทียบกับหมวดของ Alan (presheaves เหนือหมวดหมู่ของเวลา) เนื่องจากทั้งคู่เป็น presheaf ประเภท
หากคุณสนใจฟิวเจอร์สโดยเฉพาะสำหรับการเกิดพร้อมกันมันอาจจะเป็นความคิดที่ดีกว่าถ้าจะดูCTLแทนที่จะเป็น LTL AFAIK ที่ไม่ได้สำรวจดินแดนในปัจจุบัน!
แก้ไข: นี่เป็นเชื่อมโยงไปยังร่าง กระดาษส่วนใหญ่เกี่ยวกับการใช้งาน FRP ที่พิมพ์ดังนั้นภาษาจึงมีความสอดคล้องกัน แต่การอภิปรายส่วนใหญ่เกี่ยวกับฟิวเจอร์ / เหตุการณ์ในหัวข้อ 3.3 โดยทั่วไปแล้วควรนำไปใช้กับภาษาที่เกิดขึ้นพร้อมกันอย่างแท้จริงเช่นกัน
Try[T]
และFuture[T]
เป็นแบบคู่ แต่ฉันไม่เข้าใจเลยว่ามันแปลว่าอะไร