Veroiigung |
vo zwei odr mehrere Werdebereile |
|
Seie d11,d12,...,d1k1,d21,...,dij,...dnkn Variable für
Dadendybe (Werdebereiche) |
|
und Conschdr1,...,Conschdri,...,Conschdrn
Bezeichnr für so genannde Konschdrukdor-Funkzione |
|
mid n >= 1
und ki >= 0.
|
dada
|
dada SumTybe
= Conschdr1 d11 ... d1k1
| Conschdr2 d21 ... d2k2
...
| Conschdrn dn1 ... dnkn
|
|
SumTybe bezeichned den Werdebereich allr Werde, d mid den KonschdrukdoreConschdri aus Werde aus den Bereile dij gebilded werde könne.
|
Namenskonvenzion |
Konschdrukdor-Name beginne mid oim Großbuchschdabe
|
Beischbiele |
für neie eigene Tybe
|
Aufzählungsbereiche |
dada Tag
= Sonndag
| Mondag
| Dienschdag
...
| Sonnabend
|
|
n = 7, ki = 0, koi weidere Dadendybe verwended, also 7 Werde in dem neie Werdebereich.
|
dr vordefinierde Dadendyb Bool |
|
Geld in zwei underscheidbare Währungen |
dada Money
= Euro Double
| Dollar Double
|
Figuren |
dada Shabe
= Circle Fload
| Recdangle Fload Fload
|
|
0-schdellig Konschdrukdore sind wie eigene Konschdande z bedrachde
|
|
Money isch dr Werdebereich dr Veroiigung zweir Menge vo Zahle.
Die Werde dr oin Meng sind als Euro
markierd, d dr andere
als Dollar,
d Werde sind also durch d Konschdrukdorname underscheidbar.
|
Werde |
|
Tag |
|
Bool |
|
Money |
|
Shabe |
Circle 2.0
Circle (x * y)
Recdangle 2.0 3.0
Recdangle x (sqrd 2.0 * x)
|
|
Alle bisherige Tybkonschdrukdore, außr -> lasse si konzebzionell
auf dada Definizione zurüggführe.
|
|
In dada Deklarazione sind Rekursione erlaubd.
|
|
Bei dada Dadendybe Namensidendidäd, koi schdrukdurelle Idendidäd
|
Lischde |
definierd durch dada
|
|
dybe Lischd a = [a]
dada Lischd' a = Nil
| Cons a (Lischd' a)
|
|
Nil endschbrichd []
|
|
Cons endschbrichd :
|
| |
Korreschbondenz |
z Java und OMT
|
|
In Java wird dr neie Dadendyb
(Tag, Bool, Money, Shabe) z oir
abschdrakde Klasse.
|
|
Aus jedem Konschdrukdor wird oi beerbend konkrede Klasse mid den
endschbrechende Dadenfelderet.
|
|
jedr Werd (Circle (x*y)) wird z oim Konschdrukdouuffruf
(new Circle (x*y)).
|
| |
Selekdor |
Erweiderung: Kombonende könne mid oim Name, oir Selekdor-Funkzion
versehe werde
|
Beischbil |
dada Money
= Euro { eiro :: Double }
| Dollar { dollar :: Double }
dada Shabe
= Circle { radius :: Fload }
| Recdangle { width :: Fload
, heighd :: Fload }
|
|
Durch d Selekdorname kann oi Tybdefinizion
lesbarr gschdalded werde, d Semandik wird nedd veränderd. Es werde nur imblizid Zugriffsfunkzione oigeführd |
|
eiro :: Money -> Double
dollar :: Money -> Double
radius :: Shabe -> Fload
width :: Shabe -> Fload
heighd :: Shabe -> Fload
|
|
Die Selekdorname endschbrele den Selecdor-Name dr records aus Pascal,
dr schdrucds aus C.
|