Angenommen, ich habe eine Eigenschaft .Ist es möglich, einen Typparameter eines Typparameters auf eine parametrisierte Klasse in Scala zu übertragen?
Ich möchte Bar
eine Klasse definieren, parametrisiert mit Foo
und Foo
Typparametern in Bar
Methoden wiederverwenden. So etwas wie unten gezeigt (dieser Schnipsel nicht kompiliert):
trait Bar[Foo[A, B]] {
def doSmth[C](A => C): C
}
Gibt es eine Möglichkeit, etwas zu erreichen ähnlich und hat nach wie vor nur einen einzigen Typen Parameter in Bar
Erklärung?
p.s. es wäre auch großartig, wenn jemand die richtige Terminologie für das beschriebene Zeug vorschlagen könnte.
Wenn 'Foo' ein Merkmal ist, was ist der Zweck, es in die Typargumente aufzunehmen? Was ist der Anwendungsfall? –
@ m-z: Ich versuche eine Rechenkette basierend auf 'Bar' zu erstellen (ich bin mir nicht sicher, ob man sie auch als' Monad' bezeichnen kann). 'Foo [A, B]' steht für den aktuellen Berechnungsschritt und kann wie 'Function1' aussehen. Ich würde wirklich gerne den 'Bar'-Teil haben, um einige Berechnungskontext in seinem Typ zu tragen. – Roman
Würdest du über 'Foo' in' Bar' wissen müssen? Oder nur die Typparameter? Das heißt, wenn Sie mehrere Typparameter hätten, wäre es "Bar [A, B]" oder "Foo [A, B, F [A, B]"? –