Sind irgendwelche Aufgaben, die nur mit SYB möglich sind oder viel einfacher sind, im Vergleich zu GHC Generics?
GHC Generics ist eine ziemlich ausführliche Methode, um grundsätzlich jede Abfrage oder Traversierung durchzuführen. Betrachten Sie zum Beispiel eine Sprache AST mit den Typen Stmt
und Expr
, die beide Typeable
, Generic
und Data
:
Wie nutzen Sie SYB, um alle Konstanten ab Expr
oder Stmt
zu erhalten? Etwas wie:
Vergleichen Sie dies mit der typischen Verwendung von Generics, die zwei Klassen erfordern, einer Traversierung über die Summe der Produktdarstellungen, und instantiieren Sie die Klasse N-mal für die N Typen, die durchlaufen werden müssen. Wo SYB und tatsächlich die meisten generischen Systeme fallen, ist in Leistung .
Tags und Links haskell ghc-generics scrap-your-boilerplate