構文
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}