- возможно ли перенести первый параметр в функцию с несколькими параметрами? , напримерF # pipe первый параметр
date = "20160301"
Возможно ли это к трубе date
в
DateTime.ParseExact( , "yyyyMMDD", CultureInfo.InvariantCulture)
- возможно ли перенести первый параметр в функцию с несколькими параметрами? , напримерF # pipe первый параметр
date = "20160301"
Возможно ли это к трубе date
в
DateTime.ParseExact( , "yyyyMMDD", CultureInfo.InvariantCulture)
Как @yuyoyuppe объясняет в his/her answer, вы не можете напрямую проехать в ParseExact
, потому что это метод и, тем самым, не карри.
Это часто хороший вариант, чтобы определить каррированную функцию адаптера, но вы можете также трубы в анонимную функцию, если вам это нужно только на местном уровне:
let res =
date |> (fun d -> DateTime.ParseExact(d, "yyyyMMdd", CultureInfo.InvariantCulture))
, который дает вам DateTime
значения:
> res;;
val it : DateTime = 01.03.2016 00:00:00
От this:
методы обычно используют кортеж формы передачи аргументов. Это дает более четкий результат с точки зрения других языков .NET, потому что форма кортежа соответствует способу передачи аргументов в методах .NET.
Поскольку вы не можете снискать функцию, которая принимает кортеж напрямую, вам придется обернуть ParseExact
, чтобы сделать это:
let parseExact date = DateTime.ParseExact(date, "yyyyMMDD", CultureInfo.InvariantCulture)
Возможно несвязанные, но выходные аргументы могут быть связаны так:
let success, value = Double.TryParse("2.5")
Отметьте, что TryParse
принимает кортеж со вторым аргументом как byref
.