List.Generate
List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
Genererer en liste over verdier ved hjelp av de angitte funksjonene. Funksjonen initial
genererer en startkandidatverdi, som deretter testes mot condition
. Hvis kandidatverdien godkjennes, returneres den som en del av resultatlisten, og den neste kandidatverdien genereres ved å sende den nylig godkjente verdien til next
. Når en kandidatverdi ikke samsvarer condition
, stopper prosessen for listegenerering. En valgfri parameter, selector
kan også angis for å transformere elementene i resultatlisten.
Opprett en liste ved å starte på ti, gjentatte ganger avslå med én, og sikre at hvert element er større enn null.
Bruk
List.Generate(() => 10, each _ > 0, each _ - 1)
Utdata
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Generer en liste over poster som inneholder x og y, der x er en verdi og y er en liste. x bør forbli mindre enn 10 og representere antall elementer i listen y. Når listen er generert, returnerer du bare x-verdiene.
Bruk
List.Generate(
() => [x = 1, y = {}],
each [x] < 10,
each [x = List.Count([y]), y = [y] & {x}],
each [x]
)
Utdata
{1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}