partialfunction

___ answer8130820 ___

Ich denke, Sie suchen nach dem Heben / Demontieren. Lift nimmt eine Teilfunktion und wandelt sie in eine Funktion um, die eine Option zurückgibt. Unlift nimmt eine Funktion mit einem Argument, das eine Option zurückgibt und eine Teilfunktion zurückgibt.

%Vor%

In engem Zusammenhang mit dieser Antwort möchten Sie auch sehen für Informationen zu cond und condOpt:

%Vor%     
___ qstntxt ___

Gibt es eine Möglichkeit, ein %code% zu erstellen, außer über die %code% -Anweisung?

Ich bin neugierig, weil ich folgendes ausdrücken möchte (scala pseudo ahead!) ...

%Vor%

... als Teilfunktion und tun

%Vor%

scheint redundant zu sein, da ich ein %code% zweimal erstellt habe.

    
___ answer5671249 ___

Sie können ein %code% "longhand" schreiben, wenn Sie möchten:

%Vor%     
___ answer9587891 ___

Okay, ich habe das

%Vor%     
___ qstnhdr ___ Scala, Teilfunktionen ___ tag123scala ___ Scala ist eine universelle Programmiersprache, die hauptsächlich auf die Java Virtual Machine abzielt. Entwickelt, um gängige Programmiermuster in einer prägnanten, eleganten und typsicheren Weise auszudrücken, vereint es sowohl imperative als auch funktionale Programmierstile. Seine Hauptmerkmale sind: fortgeschrittenes statisches System mit Typinferenz; Funktionstypen; Muster-Matching; implizite Parameter und Konvertierungen; Überlastung des Bedieners; volle Interoperabilität mit Java; Nebenläufigkeit ___ tag123patternmatching ___ Verwenden Sie dieses Tag für Fragen zum Testen, ob eine Datenstruktur eine bestimmte Form hat oder an bestimmten Stellen bestimmte Werte enthält. Viele funktionale Sprachen bieten Mustervergleichskonstrukte. Die meisten Fragen in diesem Tag sollten auch das Tag für die Sprache haben, in der Sie programmieren. Verwenden Sie dieses Tag nicht für Fragen zu regulären Ausdrücken, sondern verwenden Sie das regex-Tag. Verwenden Sie für Mustervergleich (Globbing) in POSIX-ähnlichen Shells das Glob-Tag. ___ tag123partialfunktion ___ Eine partielle Funktion hält einen oder mehrere der Eingänge auf eine verallgemeinerte Funktionskonstante und erlaubt die Eingabe der anderen Variablen. ___ tag123extractor ___ hilf uns dieses Wiki zu bearbeiten ___ answer7436184 ___

Wie wäre es damit?

%Vor%     
___ answer5668701 ___

Nicht sicher, dass ich die Frage verstehe. Aber hier ist mein Versuch: Warum nicht einen Extraktor erstellen?

%Vor%

Die andere Option ist (und das kann die Frage beantworten, ob man %code% anders als mit %code% literal erstellen kann):

%Vor%

Da die Idee einer partiellen Funktion jedoch darin besteht, dass sie nur teilweise definiert ist, werden Sie am Ende immer noch überflüssige Dinge tun. Sie müssen ein großes int erstellen, um zu testen, ob es gültig ist, und dann in der von Ihnen erstellten Funktionsanwendung der große Int wieder ...

Ich habe ein Projekt bei Github gesehen, das versucht hat, das Problem zu umgehen, indem es die Ergebnisse von %code% etwas zwischenspeichert. . Wenn Sie zu den Benchmarks gehen, sehen Sie, dass es langsamer als die Standard-Scala-Implementierung war:)

Wenn Sie also die doppelte Natur von %code% versus %code% umgehen wollen, sollten Sie direkt zu einer (vollständigen) Funktion gehen, die ein %code% als Ergebnis liefert.

    
___
3
Antworten

Wie funktioniert orElse bei PartialFunctions?

Ich bekomme sehr seltsames Verhalten (zumindest scheint es mir) mit der Methode orElse , die für PartialFunction definiert wurde Es scheint mir so: %Vor% macht Sinn, aber das ist nicht so, wie es sich verhält, und ich habe große Schw...
18.08.2014, 21:48
2
Antworten

Wann ist eine Teilfunktion scala keine Teilfunktion?

Beim Erstellen einer Zuordnung von String zu Teilfunktionen kam es zu unerwartetem Verhalten. Wenn ich eine Teilfunktion als Map-Element erstelle, funktioniert es gut. Wenn ich es einem val zuweisen, ruft es stattdessen auf. Der Versuch, den Che...
20.05.2010, 04:34
5
Antworten

Umfang der Variablen in der case guard-Anweisung von scala

Für die Entwicklung von Aufzügen muss ich manchmal match - case -Anweisungen wie folgt verwenden. (Umgeschrieben auf einfache Scala für leichteres Verständnis.) Eine Anmerkung zu ihnen: Dies sind tatsächlich verschiedene Teilfunktionen, di...
20.08.2010, 15:38
5
Antworten

Scala, Teilfunktionen

Gibt es eine Möglichkeit, ein PartialFunction zu erstellen, außer über die case -Anweisung? Ich bin neugierig, weil ich folgendes ausdrücken möchte (scala pseudo ahead!) ... %Vor% ... als Teilfunktion und tun %Vor% scheint redun...
14.04.2011, 18:44