List.Generate
List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
Muodostaa arvoluettelon annetuilla funktioilla.
initial
funktio luo aloitusehdokkaan arvon, joka testataan sitten condition
. Jos ehdokasarvo hyväksytään, se palautetaan osana tuloksena saatavaa luetteloa, ja seuraava ehdokasarvo luodaan välittämällä juuri hyväksytty arvo next
. Kun ehdokasarvo ei täsmää condition
, luettelon luontiprosessi pysäytetään. Valinnainen parametri, selector
, voidaan myös antaa tuloksena saatavan luettelon kohteiden muuntamista varten.
Luo luettelo aloittamalla kymmenestä: pienennä toistuvasti yhdellä ja varmista, että jokainen kohde on suurempi kuin nolla.
käyttö
List.Generate(() => 10, each _ > 0, each _ - 1)
Output
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Luo luettelon tietueista, jotka sisältävät x:n ja y:n, jossa x on arvo ja y on luettelo. x:n on oltava alle 10 ja vastattava y-luettelossa olevien kohteiden määrää. Kun luettelo on muodostettu, palauta vain x-arvot.
käyttö
List.Generate(
() => [x = 1, y = {}],
each [x] < 10,
each [x = List.Count([y]), y = [y] & {x}],
each [x]
)
Output
{1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}