คำถามติดแท็ก higher-rank-types

6
จุดประสงค์ของ Rank2Types คืออะไร?
ฉันไม่ค่อยเชี่ยวชาญเรื่อง Haskell ดังนั้นนี่อาจเป็นคำถามที่ง่ายมาก Rank2Typesแก้ข้อ จำกัด ด้านภาษาอะไรบ้าง? ฟังก์ชั่นใน Haskell ไม่รองรับอาร์กิวเมนต์ polymorphic แล้วหรือ?

4
ฉันจะส่งคืนประเภทที่เชื่อมโยงจากคุณลักษณะที่ถูกจัดอันดับที่สูงกว่าได้อย่างไร
ฉันมีลักษณะที่มีฟังก์ชั่นสำหรับ deserializing ประเภทที่เกี่ยวข้อง อย่างไรก็ตามประเภทที่เกี่ยวข้องนั้นจำเป็นต้องมีอายุการใช้งานที่ผู้โทรตัดสินใจดังนั้นฉันจึงมีคุณลักษณะที่แยกต่างหากซึ่งฉันใช้คุณลักษณะที่มีอันดับสูงกว่าซึ่งผูกไว้กับ ฉันต้องใช้การปิดที่ส่งคืนประเภทที่เชื่อมโยงนี้ ฉันมีรหัสต่อไปนี้เพื่อทำ: #![allow(unreachable_code)] use std::marker::PhantomData; trait Endpoint: for<'a> EndpointBody<'a> {} trait EndpointBody<'a> { type Out: 'a; fn serialize(body: &Self::Out) -> Vec<u8>; fn deserialize(raw_body: &'a [u8]) -> Self::Out; } // ///////////////////////////////////////////////////////// /// Trait object compatible handler trait Handler { fn execute(&self, raw_body: &[u8]) -> Vec<u8>; } /// …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.