Tôi đang thiết kế một ngôn ngữ lập trình hàm đơn giản gõ như một kinh nghiệm học tập.
Dường như hệ thống loại tôi đã triển khai cho đến nay có thể (với một chút công việc phụ) kết hợp các loại giao cắt và kết hợp, ví dụ: bạn có thể có:
<Union String Integer>
<Union Integer Foo>
- Giao điểm của hai loại trên sẽ là một đồng bằng
Integer
- Sự kết hợp của hai loại sẽ là
<Union String Integer Foo>
Tất nhiên, điều này là có thể, không cần thiết có nghĩa là nó là một ý tưởng thiết kế tốt. Cụ thể, tôi hơi lo ngại về những khó khăn khi thực hiện khi giữ các loại rời rạc và / hoặc xử lý chồng chéo.
Những ưu / nhược điểm của việc kết hợp các tính năng như vậy trong hệ thống loại là gì?