Přeskočit na hlavní obsah

List.Generate

Vygeneruje seznam hodnot.

Syntax

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

Remarks

Vygeneruje seznam hodnot pomocí zadaných funkcí. Funkce initial vygeneruje počáteční hodnotu kandidáta, která se pak testuje na condition. Pokud je kandidátská hodnota schválená, vrátí se jako součást výsledného seznamu a další kandidátská hodnota se vygeneruje předáním nově schválené hodnoty do next. Jakmile se kandidátské hodnotě nepodaří spárovat condition, proces generování seznamu se zastaví. K transformaci položek ve výsledném seznamu lze zadat také volitelný parametr selector.

Examples

Example #1

Vytvořte seznam tak, že začnete od deseti, opakovaně snižujte o jednu položku a dbejte, aby každá položka byla větší než nula.

List.Generate(() => 10, each _ > 0, each _ - 1)

Result:

{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}

Example #2

Vygenerovat seznam záznamů obsahujících x a y, kde x je hodnota a y seznam. x by mělo zůstat nižší než 10 a představovat počet položek seznamu y. Po vygenerování seznamu vrátit jen hodnoty x.

List.Generate(
() => [x = 1, y = {}],
each [x] < 10,
each [x = List.Count([y]), y = [y] & {x}],
each [x]
)

Result:

{1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Category

List.Generators