我有一个矩阵:Array2D和一个函数
let DivideAndSubstract value index (matrix: float[,]) = 
    //something that returns a matrix
所以我需要将这个函数n次应用到我的矩阵中:
matrix  
|> DivideAndSubstract matrix.[0,0] 0  
|> DivideAndSubstract matrix.[1,1] 1  
|> DivideAndSubstract matrix.[2,2] 2  
....  
|> DivideAndSubstract matrix.[n,n] n 
其中n = Array2D.length1矩阵 -  1 
如何实现此流水线操作?
从我的头顶:
{0..n} |> Seq.fold (fun M k -> DivideAndSubtract matrix.[k,k] k M) matrix
编辑:更多的话不会伤害答案:
使用折叠是'将F应用于x并将F应用于结果并将F应用于该结果......直到我不需要再次应用F'的典型模式.上面这一行的命令版本将是
let mutable M = matrix
for k in 0..n do
    M <- DivideAndSubtract matrix.[k,k] k M
M
在折叠内,M表示每一步的中间结果.掌握褶皱是如何工作可能需要一段时间,但一旦你这样做,它们就会非常强大.
| 归档时间: | 
 | 
| 查看次数: | 178 次 | 
| 最近记录: |