Gibt es eine Möglichkeit, eine Funktion (lst: List (T), fun:) zu schreiben, die durch lst iteriert und jedes Element teilweise auf fun anwendet und jedes Mal eine neue Funktion rekursiv zurückgibt tue dies solange, bis das Ergebnis der Funktionsanwendung lautet: Future [T] wie gewünscht und kein Funktionstyp?Rekursive Partielle Anwendung bis Typ/Ergebnis gewünscht
fun
ist eine curried Funktion
Etwas Ähnliches.
def partialAppRec(lst : List[T], fun: ?) =
//pardon the non-exhaustive pattern match
lst match {
case x::xs =>
val test = fun(x)
if (test: Future[T]) return test
partialAppRec(xs, (fun(x) _))
}
Aber welcher Typ würde Spaß sein? Gibt es überhaupt etwas zu sagen, das Spaß macht: Parameter zu ignorieren, die es brauchen könnte. Ich möchte in der Lage sein, eine fun
Variable Parameter aufzunehmen, aber das Future[T]
zurückgibt. f : ..=>Future[T]
aber ich bin mir nicht sicher, ob so etwas existiert.
Irgendwelche Tipps/Vorschläge? Vielen Dank.
Wenn Sie Ihren Spaß auf Elemente von 'List [T]' anwenden möchten, dann ist der einzige Parameter, den diese Funktion annehmen kann, 'T'. Verwenden Sie auch nicht "Rückkehr" in Scala, es ist (fast) immer eine falsche Sache zu tun. – Dima
Nicht genau was ich machen möchte. Das wäre nur lst.map (...). Es ist mehr der Verwendung der lst Darstellung der Argumente Spaß und wollen Spaß (Elt1, Elt2, ..., Elt n) – Jay
Ich würde zuerst über die Art von 'Spaß' denken, dann wird das Problem viel einfacher. Ich denke du willst 'Spaß', um eine ADT zurückzugeben, oder einfach nur eine normale' Option [Future [T]] '. – Reactormonk