Forum Discussion
Power Query Coalesce operator
Hello,
Can someone explain, why this does not work ;
= let alist =
{2,3,4,2,2,3,4,2,2,3,3,2,3,2,2,3,3,4,2,2,3,4}
in
List.Accumulate( alist, {} , (s,c)=> s & { List.Last(s)?? 0 + c } )
but this does, I presume order of operations, but I'd like a bit more help than that please,
let alist =
{2,3,4,2,2,3,4,2,2,3,3,2,3,2,2,3,3,4,2,2,3,4}
in
List.Accumulate( alist, {} , (s,c)=>
let x = List.Last(s) ?? 0
i n s & { x + c } )
Richard.
The operator ?? has the lowest precedence, so "List.Last(s) ?? 0 + c" is equivalent to "List.Last(s) ?? (0 + c)"
4 Replies
- ZhangKun
Super User
The operator ?? has the lowest precedence, so "List.Last(s) ?? 0 + c" is equivalent to "List.Last(s) ?? (0 + c)"
- Dicken
Post Prodigy
Thanks, I thought more complex ; re wrtoe to
= let alist = {2,3,2,3,2,3,3,3,2,3,3,4,2,2}
in
List.Accumulate( alist, {} , (s,c)=>
s & { ( List.Last(s)??0 ) + c } )
- lbendlin
Super User
yes, pretty much. You need to protect the coalesce from the addition.
let alist = {2, 3, 4, 2, 2, 3, 4, 2, 2, 3, 3, 2, 3, 2, 2, 3, 3, 4, 2, 2, 3, 4} in List.Accumulate(alist, {}, (s, c) => s & {(List.Last(s) ?? 0) + c}) - AlienSx
Super User