다음을 통해 공유


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

10부터 시작하여 반복적으로 1씩 감소하고 각 항목이 0보다 큰지 확인하여 목록을 만듭니다.

사용량

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}