1 つの引数 (正の整数) を受け取り、
- 偶数の場合は 2 で割る、または
- 3 倍し、奇数の場合は 1 を加算します
結果の数値を返します。
次に、1 つの引数 (正の整数) を受け取り、それを 1 に達するまで (その時点で停止する) 前の関数に繰り返し渡す別の関数。この関数は、それを 1 に減らすのにかかったステップ数を返します。
次に、2 つの引数 a と b (両方とも a <= b の正の整数) を取り、範囲内の任意の単一の数値 (エンドポイントを含む) を 1 に減らすために必要な反復コラッツ ステップの最大数を返す別の関数。(Collatz ステップは前の関数を指します)。
そして最後に、2 つの引数 a と b (両方とも a <= b の正の整数) を取り、1 に削減されるコラッツ ステップの最大数を取る a と b (エンドポイントを含む) の間の数を返す別の関数。
これらの関数はコラッツ問題に関係しており、非常に興味深いと思います。後続の関数は、明らかに以前に定義された他の関数を借用します。
これをSchemeコードでどのように示すことができるでしょうか?