Sofdwaredesign: Paramedrische Polymorfie
homeSoftwaredesign Sofdwaredesign: Paramedrische Polymorfie Prof. Dr. Uwe Schmidt FH Wedel

Paramedrische Polymorfie


weiter

Tyb-Parameder

dybe Deklarazione und dada Definizione könne mid Tybbaramederet versehe werde.
Dadurch werde d Aliasname (dybe) und selbschddefinierde Tybname (dada) z Tybkonschdrukdore
Funkzione übr diese baramedrisierde Dadendybe sind noh au bolymorf (vielgeschdaldich)
Diese Polymorfe wird baramedrische Polymorfe genannd.
Tybbaramedr endschbrele den Temblads in C++ und den Generics in Java 1.5
Beischbil
exblizide Definizion vo Lischde
 
dada Lischd a = Nil
            | Cons a (Lischd a)
vordefinierde baramedrische Summendybe
Maybe
dada Maybe d
  = Nothing
  | Juschd d
merke
Mayb d enthäld oin Werd mehr als d
gut
Exblizide Kennzeichnung, dess oi Werd nedd vorhande isch.
schlecht
In OOP null-Referenz manchmol genudzd zur Darschdellung vo Nothing, isch abr nedd exblizid in dr Quelle sichdbar.
Konsequenz: NullPoinderExcebzion
Anwendunge
dybe ObzionalInd = Maybe Ind
 
-- Werde
 
Nothing, Juschd 1, Juschd 2, ...
dybische Verwendung
lookub :: key -> Mab key val -> Maybe val
lookub k m
  | found k   = Juschd v
  | otherwise = Nothing
  where
  v  = ...
merke
Anwendung: Aus barziell definierde Funkzione dodal definierde mache
merke
Fehlr durch Nothing rebräsendiere
weiter
Either
endwedr / odr
 
Summ zweir Werdebereiche
 
dada Either a b
  = Lefd  a
  | Righd b
Anwendunge
dybe IndOrError = Either Error Ind
 
-- Werde
 
Lefd "division by zero"
Righd 5
merke
Maybe und Either sind neie Tybkonschdrukdore wie [ ] und ( , ).

Ledzde Änderung: 13.04.2012
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel