ฉันกำลังออกแบบภาษาการเขียนโปรแกรมฟังก์ชั่นแบบเรียบง่ายที่พิมพ์ได้ง่ายเป็นประสบการณ์การเรียนรู้
ดูเหมือนว่าระบบประเภทที่ฉันได้นำไปใช้จนถึงตอนนี้ (มีงานเพิ่มเติมเล็กน้อย) รวมประเภทการแยกและสหภาพเข้าด้วยกันเช่นคุณอาจมี:
<Union String Integer>
<Union Integer Foo>
- จุดตัดของทั้งสองประเภทด้านบนจะเป็นที่ราบ
Integer
- สหภาพของทั้งสองประเภทจะเป็น
<Union String Integer Foo>
ความจริงที่ว่านี่เป็นไปได้แน่นอนไม่จำเป็นต้องหมายความว่ามันเป็นแนวคิดการออกแบบที่ดี โดยเฉพาะอย่างยิ่งฉันค่อนข้างกังวลเกี่ยวกับความยากลำบากในการใช้งานของการรักษาประเภทไม่ปะติดปะต่อและ / หรือการจัดการการทับซ้อน
ข้อดี / ข้อเสียของการรวมคุณสมบัติดังกล่าวในระบบพิมพ์คืออะไร?