La función List.Generate genera una lista de valores a partir de cuatro funciones que determinan el valor inicial, la condición a satisfacer, el siguiente valor y los datos a devolver.
List.Generate(
initial as function,
condition as function,
next as function,
optional selector as nullable function
) as list
- initial: función que determina el primer valor de la lista
- condition: condición a satisfacer para generar un nuevo valor
- next: función que determina el siguiente valor de la lista
- selector: (opcional) valores a devolver
En este primer ejemplo generamos una lista de números pares a partir del 6 y hasta el número 14:
let
in
List.Generate(
() => 6,
each _ <= 14,
each _ + 2
)
Obsérvese que el primer argumento debe ser una función, no bastaría con pasar un valor concreto (el 6 en este caso).
En este segundo ejemplo trabajamos con una lista formada por registros conteniendo dos campos: x e y. El primero comienza tomando el valor 6 y se va incrementando de 3 en 3 mientras no supere el valor 18, y el segundo va tomando valores desde 1 hacia arriba:
let
in
List.Generate(
() => [x = 6, y = 1],
each [x] <= 18,
each [x = [x] + 3, y = [y] + 1]
)
Podemos visualizar el contenido del último valor generado haciendo clic en el enlace Record que se muestra al final de la lista en la imagen anterior: