6
Angenommen, ich habe eine abgedichtetes Gehäuse Klassenhierarchie wie folgt aus:Abflachen eine abgedichtetes Gehäuse Klassenhierarchie
sealed trait Expr
case class Const(val: Double) extends Expr
case class Plus(x: Expr, y: Expr) extends Expr
case class Times(x: Expr, y: Expr) extends Expr
- Ist es möglich, automatisch Ausdrücke zu konvertieren wie
Plus(1,Plus(2,3))
in eine hList von HLists? - Funktioniert die Umwandlung sogar innerhalb einer Funktion
f(e: Expr)
, d. H. Wenn die spezifische Struktur von e zur Kompilierungszeit nicht bekannt ist?
'... wenn die spezifische Struktur von e zur Kompilierzeit nicht bekannt ist. Da' Expr' ein 'versiegeltes Merkmal' ist, kennt der Compiler alle Unterklassen zur Kompilierungszeit, z. Vollständigkeitsanpassung. Ich verstehe diesen Kommentar/meine Frage nicht - kannst du das bitte erklären? –
Ich meine: von innen f, es ist nicht explizit bekannt, ob es mit f aufgerufen wurde (Plus (1, x)) oder f (Times (a, b)) - Ist dies ein Hindernis für die Abflachung der Ausdruck in eine HList von innen f? – NietzscheanAI