Κοινή χρήση μέσω


List.Generate

Σύνταξη

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

Περίπου

Δημιουργεί μια λίστα τιμών χρησιμοποιώντας τις συναρτήσεις που παρέχονται. Η συνάρτηση initial δημιουργεί μια αρχική τιμή υποψήφιου, η οποία, στη συνέχεια, δοκιμάζεται σε σχέση με condition. Εάν η τιμή υποψηφίου εγκριθεί, τότε επιστρέφεται ως μέρος της λίστας που προκύπτει και η επόμενη τιμή υποψηφίου δημιουργείται μεταβιβάζοντας την τιμή που μόλις εγκρίθηκε στο next. Όταν αποτύχει η αντιστοίχιση μιας υποψήφιας τιμής condition, διακόπτεται η διαδικασία δημιουργίας λίστας. Μπορεί επίσης να παρασχεθεί μια προαιρετική παράμετρος, selector, για τον μετασχηματισμό των στοιχείων στη λίστα που προκύπτει.

Παράδειγμα 1

Δημιουργήστε μια λίστα ξεκινώντας από τις δέκα, μειώνοντας επανειλημμένα κατά ένα και εξασφαλίζοντας ότι κάθε στοιχείο είναι μεγαλύτερο από το μηδέν.

χρήσης

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

εξόδου

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

Παράδειγμα 2

Δημιουργήστε μια λίστα εγγραφών που περιέχουν x και y, όπου x είναι μια τιμή και y είναι μια λίστα. Το x πρέπει να είναι μικρότερο από 10 και να αντιπροσωπεύει τον αριθμό των στοιχείων στη λίστα y. Αφού δημιουργηθεί η λίστα, επιστρέψτε μόνο τις τιμές x.

χρήσης

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

εξόδου

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