Ich versuche, den folgenden Scala-Compiler-Fehler unten zu lösen.kopieren Methode und Subtyp Polymorphismus in Scala
case class CC[E](l:List[E])
trait D[E,L<:CC[E]]{
def f(l:L):L = l.copy(l=List()) // does not compile: "found CC[E], required: L"
}
In (pseudo) -Haskell (ohne Unter Typisierung) würde dies wie etwas sein:
data CC = CC {l::[e]}
'makeLens CC
f l = l .~ _e []
Aktuell Suche in ScalaZ, Shapeless und Monocle.
Auf den ersten Blick scheint Monocle außer Frage zu stehen (nicht sicher), bitte beweisen Sie mir falsch, wenn meine Intuition falsch ist.
ScalaZ + Shapeless könnte probably Arbeit, ich bin mir nicht sicher, wie (nie benutzt).
1) Was wäre der einfachste Weg, dies in Scala zu lösen?
2) Wäre ScalaZ an sich genug? Oder Formlos an sich ist genug? Oder ist die Kombination der beiden notwendig? Oder vielleicht anders?
Hmmm dies scheint eine Antwort auf sein http://www.cakesolutions.net/teamblogs/copying-sealed-trait-instances-a-journey-through -Generisch-Programmierung-und-formlos – jhegedus
Dies ist auch verwandt: http://Stackoverflow.com/a/41000237/1374461 –
Interessant, danke für den Tipp @ Jasper-M – jhegedus