F#中是否有任何语法可以简化按顺序排列的函数列表的流水线工作?例如,
x |> fun1 |> fun2 |> fun3 ...
还是有没有设计图案使这项工作变得不必要?在我的情况下,我正在制作一个(朴素的)Sudoku求解器,并具有一个类似于以下内容的函数:
let reduceByRows poss =
poss
|> reduceBy (rowIndeces 1) |> reduceBy (rowIndeces 2) |> reduceBy (rowIndeces 3)
|> reduceBy (rowIndeces 4) |> reduceBy (rowIndeces 5) |> reduceBy (rowIndeces 6)
|> reduceBy (rowIndeces 7) |> reduceBy (rowIndeces 8) |> reduceBy (rowIndeces 9)
有什么办法可以清理这样的东西吗?
最佳答案
对我来说似乎是折纸。关于什么
let reduceByRows poss =
Seq.fold (fun p i -> reduceBy (rowIndices i) p) poss {1..9}