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}