DDP-Projekt / Kompilierer

Der Kompilierer der Deutschen Programmiersprache
https://ddp.le0n.dev/Spielplatz
MIT License
139 stars 3 forks source link

Sumtypes #83

Open bafto opened 4 months ago

bafto commented 4 months ago

Sum-types sind ein nützliches Feature in vielen Fällen. Da wir schon Product-types haben, macht es Sinn auch Sum-types zu übernehmen.

Für DDP würde ich folgende Syntax vorschlagen:

[Definition des Typs]
Wir definieren eine NummerOderText als eine Zahl, eine Kommazahl oder einen Text.

Die NummerOderText x ist 2.
Speichere "Hallo Welt" in x. [nur die angegebenen Typen können x zugewiesen werden]
Speichere wahr in x. [Typfehler]

Schreibe (x als Text) auf eine Zeile. [um einen Sum-type zu benutzen muss gecasted werden]

[man kann den tatsächlichen Typ einer Variable überprüfen]
Wenn x ein Text ist, dann:
    ...

Das einzige was man mit einem Sum-type machen kann ist ihn zu definieren, zu Speichern, ihn in einen konkreten Typ umzuwandeln und zu überprüfen ob er ein bestimmter Typ ist.

Sum-types in DDP werden relativ ähnlich zu Variablen sein, bloß mit mehr Sicherheits-Checks zur Kompilierzeit.