Ich bin neu bei Scala Macros und ich verbrachte ein paar Tage damit, meine erste zu schreiben. Ich habe ein Problem mit der Quasiknotenverkettung.Scala Quasiquote Verkettung
Es gibt eine Liste von Fallklauseln, sagen wir mal folgendes:
val cases = cq"x => 1 " :: cq"_ => 0 " :: Nil
Und ich brauche eine Teilfunktion daraus zu bauen. Das Problem ist, dass ich keine Ahnung habe, wie man sie in die letzte Quasiquote einfügt. Die Dokumentation sagt, dass ich etwas tun sollte:
q"{ case ..$cases }"
aber es funktioniert nicht, wenn ich dies tun.
Gibt es eine Möglichkeit, aus einer solchen Liste eine PartialFunction zu erstellen?
Danke für jede Hilfe.
Ich glaube, das ist der richtige Ansatz. Welchen Fehler hast du genau? – Odomontois
Auch Ihr Muster ist ein bisschen seltsam 'x => 1' passt sich jedem Ausdruck an, wenn Sie auf einen lokalen Wert mit dem Namen' x' verweisen, sollten Sie '\' x \ '=> 1 als patern verwenden – Odomontois
Der Fehler ist der folgende : Ausnahme bei Makroerweiterung: java.lang.IllegalArgumentException: scala.collection.immutable.List (case (x @ _) => 1, case _ => 0) ist keine gültige Repräsentation des Musterübereinstimmungsfalls. –