我尝试这样做是在这里(原谅for循环 - 我只是好奇,看看这是否可能):
let (|>>) a (b : ('a -> unit) list) =
for x in b do
x a
Run Code Online (Sandbox Code Playgroud)
我不鼓励使用自定义操作符.我认为应该很少使用它们.这个似乎不够通用,不值得定义,并且可能使代码难以阅读.这是一个替代方案:
[ printf "%A"; printfn "%A" ] |> List.iter ((|>) 1)
Run Code Online (Sandbox Code Playgroud)
但是,在内联中写出运算符定义会更清晰,更短:
for f in [ printf "%A"; printfn "%A" ] do f 1
Run Code Online (Sandbox Code Playgroud)