Lue englanniksi

Jaa


List.Generate

Syntaksi

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

Noin

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.

Esimerkki 1

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}

Esimerkki 2

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}