F# 我可以避免使用序号中的括号吗?
或者我真的可以用这样的操作来避免括号:F# 我可以避免使用序号中的括号吗?,f#,pipe,F#,Pipe,或者我真的可以用这样的操作来避免括号: X |> Seq.iter(fun x -> () ) 所以我想知道,这是否有可能使一些与管道相同或不一样的把戏。我已经用不同的方法尝试过了,但我知道我想重新开始,并询问我是否可以使用类似| X |> Seq.iter <| fun x -> X |>Seq.iter 当然,你可以写: for x in X do () 好吧,这不是你想要的,但是序列表达式和for通常是一种语法上更简单的管道表达方式 回到您的问题-为什
X |> Seq.iter(fun x -> () )
所以我想知道,这是否有可能使一些与管道相同或不一样的把戏。我已经用不同的方法尝试过了,但我知道我想重新开始,并询问我是否可以使用类似|
X |> Seq.iter <| fun x ->
X |>Seq.iter
当然,你可以写:
for x in X do ()
好吧,这不是你想要的,但是序列表达式和for通常是一种语法上更简单的管道表达方式
回到您的问题-为什么
,以便正确解析代码。例如,您可以编写:
let (+<) f a = f a
[1..10] |> Seq.map +< fun x -> x * x
|> Seq.iter +< fun x -> printfn "%A" x
let(+Seq.map+x*x
|>Seq.iter+printfn“%A”x
但实际上,在实践中使用它并不是一个好主意,因为它不会为您节省任何打字时间,并且会使其他将阅读您的代码的F#程序员感到困惑(与Haskell中使用$
时不同)。当然,您可以编写:
for x in X do ()
好吧,这不是你想要的,但是序列表达式和for通常是一种语法上更简单的管道表达方式
回到您的问题-为什么
,以便正确解析代码。您可以编写以下示例:
let (+<) f a = f a
[1..10] |> Seq.map +< fun x -> x * x
|> Seq.iter +< fun x -> printfn "%A" x
let(+Seq.map+x*x
|>Seq.iter+printfn“%A”x
但实际上,在实践中使用它并不是一个好主意,因为它不会为您节省任何输入,并且会使其他将阅读您的代码的F#程序员感到困惑(与Haskell中使用
$
时不同)为了进行类型推断,你拥有的很可能是最好的方法。它允许函数'a->unit
知道'a
的类型,因为seq为了进行类型推断,你拥有的很可能是最好的方法。它允许函数'a->unit
知道的类型de>'a
因为为什么要这样做?我想->运算符的优先级有点太低了…我只想使用一个命名函数。X |>Seq.iter f
这是我发现使用
很有用的唯一一个场合,我想要它,因为我不喜欢括号)你为什么要这样做?我想->运算符的优先级有点太低了……我只想使用一个命名函数。X |>Seq.iter f
这是我发现使用>
有用的唯一一个场合,我想要它,因为我不喜欢括号)Tomas,你刚刚给了我一个想法,使用^
来创建一个右关联的反向管道,让内联(^@Stephen:刚刚通过twitter注意到了这个片段:-)。好的和有用的样品!谢谢你的发帖。托马斯,你刚刚给了我一个想法,用^
制作一个右关联的反向管道,让内联(^@Stephen:刚刚通过twitter注意到了这个片段:-)。好的和有用的样品!谢谢你发帖。