我注意到管道进出某些.NET方法很困难。玩具示例
let foo = System.String [| 'a'; 'b'; 'c' |] // works
let foo = [| 'a'; 'b'; 'c' |] |> System.String // fails
// error FS0802: Invalid use of a type name and/or object constructor.
let foo = System.String <| [| 'a'; 'b'; 'c' |] // fails the same way
let foo = [| 'a'; 'b'; 'c' |] |> new System.String // Fails
// error FS0010: Incomplete structured construct at or before this point in expression
我基本上试图找出何时可以将管道与.NET对象结合使用,何时不能。如果有参考,我很乐意获得链接!
答案 0 :(得分:2)
至于您对字符串的挂断,以下链接显示对F#4.0中添加了将构造函数作为函数处理的支持
另一个使.NET库管道笨拙的常见情况是它们被公开为tupled
(而不是curried
)函数参数,这可以使部分应用函数到管道通过更痛苦。围绕这些笨重的.NET函数创建curried包装器通常是一个很好的解决方法。