ist es möglich, den ersten Parameter in eine Mehrfachparameterfunktion zu leiten? zum BeispielF # Pipe erster Parameter
date = "20160301"
Ist das möglich Rohr date
in
DateTime.ParseExact( , "yyyyMMDD", CultureInfo.InvariantCulture)
ist es möglich, den ersten Parameter in eine Mehrfachparameterfunktion zu leiten? zum BeispielF # Pipe erster Parameter
date = "20160301"
Ist das möglich Rohr date
in
DateTime.ParseExact( , "yyyyMMDD", CultureInfo.InvariantCulture)
Wie @yuyoyuppe in his/her answer erklärt, können Sie nicht direkt in ParseExact
Pipeline, weil es eine Methode ist, und damit nicht curried.
Es ist oft eine gute Option, um eine Curry-Adapter-Funktion zu definieren, aber Sie können auch über die Pipeline in eine anonyme Funktion, wenn Sie es nur vor Ort benötigen:
let res =
date |> (fun d -> DateTime.ParseExact(d, "yyyyMMdd", CultureInfo.InvariantCulture))
, die Ihnen einen DateTime
Wert gibt:
> res;;
val it : DateTime = 01.03.2016 00:00:00
Von this:
Methoden in der Regel das Tupel Form des Führens Argumente verwenden. Dies ergibt ein deutlicheres Ergebnis aus der Perspektive anderer .NET-Sprachen, da die Tupelform der Art entspricht, wie Argumente in .NET-Methoden übergeben werden.
Da kann man nicht eine Funktion Curry, die direkt Tupel akzeptiert, werden Sie die ParseExact
wickeln müssen zu tun, dass:
let parseExact date = DateTime.ParseExact(date, "yyyyMMDD", CultureInfo.InvariantCulture)
Vielleicht nicht verwandte, aber Ausgang Argumente wie die gebunden werden können:
Beachten Sie, dass TryParse
das Tupel mit dem zweiten Argument als byref
akzeptiert.