Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowTry your skills in the Power BI Dataviz World Championship! Round one ends June 26. Join now
Hi i have found this, and think it's dow to Lazy /eager evaluation; so single empty list = {}
= let alist = {} ,
tr = List.Transform( alist,(x)=> x {0} ),
p_indi = alist {0}
in tr
tr = empty , p_indi = errorBut with a nested list ;
= let alist = {{}} ,
tr = List.Transform( alist,(x)=> x {0} ),
p_indi = alist {0}
in tr
tr = error, p_indi = empty so if anyone would like to elaborate on why/ how this works, links to info etc. please reply, I have no practical use for this
Just for the brain.
Richard.
Solved! Go to Solution.
Hi @Dicken
List.Transform operates on empty list {}, so transformation function (x) => x{0} is never executed resulting empty list.alist{0} directly attempts to access first element of an empty list which immediately raises an index out of range error
alist = {{}} contains one element (an empty list). List.Transform execute once passing {} as x and x{0} fails because inner list is empty, so tr becomes an error. alist{0} returns first element of the outer list which is the empty list {}, so no error
so on LIst.Transform( {} , (x)=> , as the list is empt theree is not list for the function to work on,
so it does nothing, stays in that original state, where as {} {0} iis executed regardless, so = error , is this along the right lines.
Yes @Dicken
That's how I understand it as well. With List.Transform({}, (x) => x{0}) input list is empty, so there are no elements to pass into function. Since the function is never invoked, nothing attempts to evaluate x{0} and result remains an empty list. {}{0} is a direct indexing operation on an empty list, so it is evaluated immediately and returns an index out of range error
hi, (x) => x{0} is applied to each element of the list, not the list itself. That's why List.Transform with empty list { } returns the same empty list (nothing to transform) while List.Transform with { { } } returns ... no, not error but the list with single element {error}. And It has nothing to do with lazy / eager evaluation.
Hi @Dicken
List.Transform operates on empty list {}, so transformation function (x) => x{0} is never executed resulting empty list.alist{0} directly attempts to access first element of an empty list which immediately raises an index out of range error
alist = {{}} contains one element (an empty list). List.Transform execute once passing {} as x and x{0} fails because inner list is empty, so tr becomes an error. alist{0} returns first element of the outer list which is the empty list {}, so no error
Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.
Check out the May 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 4 | |
| 4 | |
| 2 | |
| 2 | |
| 1 |
| User | Count |
|---|---|
| 11 | |
| 11 | |
| 5 | |
| 4 | |
| 4 |