[FIXED] Breeze DenseMatrix kann mit Scala3 nicht erstellt werden

Ausgabe

Beim Versuch, mit Scala 3 eine dichte Matrix vom Typ Option zu erstellen, erhalte ich eine Fehlermeldung.

  val dm1 = DenseMatrix((1,2),(1,2))   // <- this works
  val dm2 = DenseMatrix((Some(1),Some(2)),(Some(1),Some(2)))  <- doesn't work

Fehler: Kein implizites Argument des Typs „breeze.storage.Zero[V]“ wurde für den Parameter null der Methode „apply“ in der Eigenschaft „MatrixConstructors“ gefunden

Übrigens, es funktioniert in Scastie und Scala 2.

https://scastie.scala-lang.org/89HUyuXNQrqWDPNpRbtrOw

Lösung

Versuchen Sie, das notwendige implizit hinzuzufügen

implicit val optIntZero: Zero[Option[Int]] = Zero(Some(0))
implicit val someIntZero: Zero[Some[Int]] = Zero(Some(0))

oder allgemeiner

implicit def optZero[A](implicit zero: Zero[A]): Zero[Option[A]] = Zero(Some(zero.zero))
implicit def someZero[A](implicit zero: Zero[A]): Zero[Some[A]] = Zero(Some(zero.zero))

oder nur

implicit def someZero[F[t] >: Some[t], A](implicit zero: Zero[A]): Zero[F[A]] = Zero(Some(zero.zero))

Problem mit Beweisparametern im Wind


Beantwortet von –
Dmytro Mitin


Antwort geprüft von –
Senaida (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like

[FIXED] Funkenfassade für CaseWhen

Ausgabe Ich versuche, eine Funktion zu erstellen, die wie eine Fassade für die CaseWhenSpark-Funktion wirkt. CaseWhen( branches: Seq[(Expression,…