Можно ли использовать оператор конвейера в F # для передачи аргумента в конструктор?
Этот код переворачивает строку:
let reverse (s : string) = new string(s.ToCharArray() |> Array.rev)
Можно ли это переписать с помощью оператора конвейера, чтобы передать требуемый аргументstring()
конструктор? Например, это кажется более идиоматическим:
// Doesn't compile:
let reverse (s : string) = s.ToCharArray() |> Array.rev |> new string
Точно так же, почему я не могу использоватьstring
оператор следующим образом?
let reverse2 (s : string) = s.ToCharArray() |> Array.rev |> string
Вот оно в действии:
> reverse2 "foo" ;;
val it : string = "System.Char[]"
Возвращает тип, а не «oof».