Tham số đường ống vào đường chỉ hoạt động với các hàm chấp nhận một tham số? Nếu chúng ta nhìn vào ví dụ ở Chris Smiths' page,Đường ống một tham số khác vào dòng trong F #
// Using the Pipe-Forward operator (|>)
let photosInMB_pipeforward =
@"C:\Users\chrsmith\Pictures\"
|> filesUnderFolder
|> Seq.map fileInfo
|> Seq.map fileSize
|> Seq.fold (+) 0L
|> bytesToMB
nơi chức năng filesUnderFolder mình đã mong chỉ tham số rootFolder, gì nếu hàm được mong đợi hai tham số, tức là
let filesUnderFolder size rootFolder
Sau đó, điều này không làm việc :
// Using the Pipe-Forward operator (|>)
let size= 4
let photosInMB_pipeforward =
@"C:\Users\chrsmith\Pictures\"
|> filesUnderFolder size
|> Seq.map fileInfo
|> Seq.map fileSize
|> Seq.fold (+) 0L
|> bytesToMB
Vì tôi có thể xác định
let inline (>>) f g x y = g(f x y)
Tôi nghĩ tôi có thể sử dụng toán tử đường ống với các hàm có nhiều thông số đầu vào, phải không? Tôi đang thiếu gì?
cảm ơn rất nhiều đại biểu, là giá trị được trả lại từ trên đường ống, tôi có thể coi đó là đối tượng không? một cái gì đó như: kích thước, @ "C: \ Users \ chrsmith \ Hình ảnh \" ||> filesUnderFolder |> .GetLength() – demokritos
Là một đối tượng không, nhưng bạn có thể tạo một hàm mới với '(|>)' nhà điều hành, cũng không có cách chung để chuyển một hàm thành viên làm đối số trong F #. Bạn phải bọc nó trong một hàm. 'size, @" C: \ Users \ chrsmith \ Hình ảnh \ "||> filesUnderFolder |> (vui vẻ x -> x.GetLength())' – gradbot