SetRecursion

式内部の再帰とループの最大繰り返し数を設定します。

構文 

SetRecursion (式 ; 最大繰り返し)

引数 

= 任意の計算式、フィールド、または定数

最大繰り返し - 繰り返しの最大数。

戻り値のデータタイプ 

テキスト、数字、日付、時刻、タイムスタンプ、オブジェクト

起点バージョン 

18.0

説明 

While 関数と再帰的カスタム関数の繰り返しは、デフォルトでそれぞれ 50,000 回にまで制限されます。この関数を使用すれば、制限を最大繰り返しまで増加または減らすことができます。最大繰り返しを超えた場合、この関数は「?」を返します。それ以外の場合は、この関数はの結果を返します。

メモ 

  • 非末尾再帰を使用するカスタム関数は、SetRecursion によって指定された最大繰り返しの影響も受けます。ただし、SetRecursion に関係なく、メモリ内で使用できるスタックの容量が少なすぎる場合、終了して「?」を返します。

例 1 

While ループが SetRecursion によって指定された 5 回の制限を超えて繰り返すため「?」を返します。

コピー
SetRecursion ( 
    While (  
        [i = 0 ; out = ""] ;
        i ≤ 10 ;  
        [ 
            i = i + 1 ; 
            out = out & $variable [i] & ¶ 
        ] ;
        out 
    ) ; 
5 )

例 2 

SetRecursion が繰り返しの制限を 200000 まで増やすため「100000」を返します。

コピー
SetRecursion ( 
    While (  
        i = 0 ; 
        i < 100000 ; 
        i = i + 1 ; 
        i 
    ) ; 
200000 )