Baca dalam bahasa Inggris

Bagikan melalui


List.Generate

Sintaksis

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

Tentang

Menghasilkan daftar nilai menggunakan fungsi yang disediakan. Fungsi initial menghasilkan nilai kandidat awal, yang kemudian diuji terhadap condition. Jika nilai kandidat disetujui, nilai tersebut dikembalikan sebagai bagian dari daftar yang dihasilkan, dan nilai kandidat berikutnya dihasilkan dengan meneruskan nilai yang baru disetujui ke next. Setelah nilai kandidat gagal cocok dengan condition, proses pembuatan daftar berhenti. Parameter opsional, selector, juga dapat disediakan untuk mengubah item dalam daftar yang dihasilkan.

Contoh 1

Buat daftar dengan mulai dari sepuluh, menguranginya satu demi satu secara berulang, dan pastikan setiap item lebih besar dari nol.

Penggunaan

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

Output

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

Contoh 2

Buat daftar rekaman yang berisi x dan y, di mana x adalah nilai dan y adalah daftar. x harus tetap kurang dari 10 dan mewakili jumlah item dalam daftar y. Setelah daftar dibuat, kembalikan hanya nilai x.

Penggunaan

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}