Methode unter impliziten CanBuildFrom funktioniert nicht mit Eta-Expansion?
Ich habe folgende Methode:
def firstAndLast[CC, A, That](seq: CC)(implicit asSeq: CC => Seq[A], cbf: CanBuildFrom[CC, A, That]): That = {
val b = cbf(seq)
b += seq.head
b += seq.last
b.result
}
Sehen:Methode, die Seq [T] verwendet, um String anstelle von Seq [Char] zurückzugeben zur Begründung. Es funktioniert wie ein Zauber im ersten Fall, kann aber im zweiten nicht kompiliert werden:
List("abc", "def") map {firstAndLast(_)}
List("abc", "def") map firstAndLast
Geben:
error: No implicit view available from CC => Seq[A].
List("abc", "def") map firstAndLast
Haben Sie eine Idee, wie Sie diese Deklaration verbessern können, um zusätzliche Umhüllungen zu vermeiden? Eta-Expansion scheint das Problem zu sein (?)