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
ด้วย เพื่อแปลงข้อมูลในรายการผลลัพธ์
สร้างรายการโดยเริ่มต้นที่สิบทยศ ที่ลดลงซ้ํา ๆ ทีละหนึ่ง และตรวจสอบให้แน่ใจว่าแต่ละรายการมีค่ามากกว่าศูนย์
การใช้งาน
List.Generate(() => 10, each _ > 0, each _ - 1)
ผลลัพธ์ของ
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
สร้างรายการของเรกคอร์ดที่มี 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}