List.Generate

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.

Sintaxis

List.Generate(
    initial as function,
    condition as function,
    next as function,
    optional selector as nullable function
) as list

Parámetros
  • 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
Ejemplos

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
    )

Función M List.Generate

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]
    )

Función M List.Generate

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:

Función M List.Generate

Siguiendo con el ejemplo anterior, podemos optar por devolver solo el primer componente de cada registro incluyendo el cuarto parámetro, selector:

let
in
    List.Generate(
        () => [x = 6, y = 1],
        each [x] <= 18,
        each [x = [x] + 3, y = [y] + 1],
        each[x]
    )

Función M List.Generate
Categoría
Funciones de lista
Enviado por admin el Mié, 02/09/2020 - 13:51