lazyMapped

fun <T, U> List<T>.lazyMapped(transform: (T, Int) -> U): List<U>

Returns a List implementation that applies the expensive transform function only when an element is accessed and then caches the calculated values. Size is very cheap as it doesn't call transform.