Je conçois un langage de programmation fonctionnel simple typé statiquement comme une expérience d'apprentissage.
Il semble que le système de types que j'ai mis en place jusqu'à présent puisse (avec un peu de travail supplémentaire) incorporer des types d'intersection et d'union, par exemple vous pourriez avoir:
<Union String Integer>
<Union Integer Foo>
- L'intersection des deux types ci-dessus serait une plaine
Integer
- L'union des deux types serait
<Union String Integer Foo>
Le fait que cela soit possible, bien sûr, ne signifie pas nécessairement que c'est une bonne idée de conception. En particulier, je suis quelque peu préoccupé par les difficultés de mise en œuvre de garder les types disjoints et / ou de gérer les chevauchements.
Quels sont les avantages / inconvénients de l'intégration de telles fonctionnalités dans le système de saisie?