ich eine Funktion haben, die zwei Parameter nimmt, zum Beispiel:Splitting ein Tupel inline als Parameter an eine Funktion mit Nicht-Tupel Argumente
let f a b = a = b
Dann habe ich eine zweite Funktion, die ein Tupel zurückgibt:
Ich möchte a und b im Tupel übergeben von g als Parameter zu f in einer Zeile. Ich könnte es in zwei Anweisungen tun, aber der Grund, warum ich das tun möchte, ist, dass meine Anruffunktion einen oder und ich würde lieber nicht f anrufen, außer der erste Fall ist falsch, um unnötige Verarbeitung zu sparen.
let calling =
someboolean ||
f g // want to split result of g to parameters for f without calling g twice
Irgendwelche Tipps, wie man das macht? Ich weiß, ich könnte stattdessen ein Tupel nehmen, aber ich möchte die Option zum Curry beibehalten.
Ich hoffe, ich habe das gut genug erklärt. :)
[Hier] (http://msdn.microsoft.com/en-us/library/dd233228.aspx) eine nette, organisierte Referenzliste von F # -Symbolen und Operatoren, wenn Sie mehr Informationen über die anderen Antworten benötigen – Jwosty
Ich hätte mehrere Antworten markiert, wenn ich könnte, aber ich wählte, was ich dachte, war die eleganteste Lösung für die jeweilige Frage.Das heißt, ich denke, Thomas Vorschlag zur Refactoring der f und g Anrufe ist wahrscheinlich die "richtige". Danke allen! – McMuttons