Quellen
- Lit.LS10 Kapitel 12
Konzept | Beispiel |
---|---|
Das Expression Problem ist die Frage ob eine Sprache Operationen und Datentypen erweitern kann.
|
Beispiel MiniSprache:
|
Datacentric approach
keine chance Operation repr an BaseD anzuhängen ohne BaseD zu ändern | // Base data with a default operation trait BaseD {def eval: Int} // 1st concrete data (in base): number literals class NumD(value: Int) extends BaseD {def eval = value} // Extension: 2nd concrete data: data addition class PlusD(a: BaseD, b: BaseD) extends BaseD { def eval = a.eval + b.eval } |