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 nowJuly 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more
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
Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.
If you love stickers, then you will definitely want to check out our community sticker challenge, Barcelona edition!
Check out the July 2026 Power BI update to learn about new features.