Summentypen wären in den gängigen OO-Sprachen im Allgemeinen weniger nützlich, da sie eine ähnliche Art von Problem lösen wie die OO-Subtypisierung. Eine Möglichkeit, sie zu betrachten, besteht darin, dass beide Subtypen behandeln, aber OO ist, dass man open
einem übergeordneten Typ beliebige Subtypen hinzufügen kann und dass Summentypen sind, closed
dh man bestimmt im Voraus, welche Subtypen gültig sind.
Jetzt kombinieren viele OO-Sprachen die Untertypisierung mit anderen Konzepten wie geerbten Strukturen, Polymorphismus, Referenztypisierung usw., um sie allgemein nützlicher zu machen. Eine Konsequenz ist, dass sie in der Regel aufwändiger einzurichten sind (mit Klassen und Konstruktoren und so weiter) und daher eher nicht für Dinge wie Result
s und Option
s usw. verwendet werden, bis die allgemeine Typisierung üblich wurde.
Ich würde auch sagen, dass der Fokus auf reale Beziehungen, den die meisten Menschen zu Beginn der OO-Programmierung erlernten, z. Obwohl die Ideen ziemlich ähnlich sind.
Ein möglicher Grund dafür, warum funktionale Sprachen das geschlossene Schreiben dem offenen Schreiben vorziehen, ist, dass sie den Mustervergleich bevorzugen. Dies ist nützlich für den Funktionspolymorphismus, funktioniert aber auch sehr gut bei geschlossenen Typen, da der Compiler statisch überprüfen kann, ob der Abgleich alle Subtypen abdeckt. Dies kann dazu führen, dass sich die Sprache konsistenter anfühlt, obwohl ich nicht glaube, dass es einen inhärenten Vorteil gibt (ich könnte mich irren).