Forum Discussion

Dicken's avatar
Dicken
Icon for Post Prodigy rankPost Prodigy
4 months ago
Solved

List.Generate, make behave like Accumulate or XL REDUCE

Hi, my staring point was this, i wanted to accumute fieds to a  record;  so i used;  let f = {List.Sum, List.Max, List.Average}, head = {"sum", "max", "avg"}, pos = {0, 1, 2}, ...
  • Ahmedx's avatar
    4 months ago

    and try this

    let 
    f    = {List.Sum,List.Max, List.Average},
    head = { "sum", "max", "avg"}, 
    val = {2,3,1,5,2,1},
    to=
      List.Generate(()=> [ i = 0, j = Record.AddField( [],head {i}, f{i}(val) )  ],
                     (x)=> x[i] <= List.Count( head)-1, 
                     (x)=> [i = x[i] + 1, j = Record.AddField( [],head {i},f{i}(val))
    ],
                     (x)=>x[j])
    in
      Record.Combine( to)