2
ชี้แจงเกี่ยวกับประเภทที่มีอยู่ใน Haskell
ฉันพยายามที่จะเข้าใจประเภท Existential ใน Haskell และเจอ PDF http://www.ii.uni.wroc.pl/~dabi/courses/ZPF15/rlasocha/prezentacja.pdf โปรดแก้ไขความเข้าใจด้านล่างที่ฉันมีจนถึงตอนนี้ ประเภทที่มีอยู่ดูเหมือนจะไม่สนใจในประเภทที่มีอยู่ แต่การจับคู่รูปแบบพวกเขาบอกว่ามีประเภทบางประเภทที่เราไม่ทราบว่าเป็นประเภทใดจนกระทั่งถึง & ยกเว้นว่าเราใช้ Typeable หรือ Data เราใช้มันเมื่อเราต้องการซ่อนประเภท (เช่น: สำหรับรายการที่ต่างกัน) หรือเราไม่ทราบว่าประเภทใดในเวลารวบรวม GADT's ให้ไวยากรณ์ที่ชัดเจนและดีกว่าที่จะใช้รหัสประเภทอัตถิภาวนิยมโดยการให้นัยforall' s ข้อสงสัยของฉัน ในหน้า 20 ของ PDF ข้างต้นมีการกล่าวถึงสำหรับโค้ดด้านล่างว่าเป็นไปไม่ได้ที่ Function ต้องการบัฟเฟอร์เฉพาะ ทำไมถึงเป็นเช่นนั้น เมื่อฉันร่างฟังก์ชั่นฉันรู้ว่าบัฟเฟอร์ชนิดใดฉันจะใช้แม้จะไม่รู้ว่าข้อมูลที่ฉันจะใส่เข้าไปนั้น มีอะไรผิดปกติในการมี:: Worker MemoryBuffer Intถ้าพวกเขาต้องการที่จะทำให้นามธรรมเหนือบัฟเฟอร์พวกเขาสามารถมีประเภท Sum data Buffer = MemoryBuffer | NetBuffer | RandomBufferและมีประเภทเช่น:: Worker Buffer Int data Worker …