0

関数のエラーがわかりません。リストを n 回循環することになっています。たとえば、次のようになります。

cycle([1, 2, 3, 4, 5, 6], 2)を返し[3, 4, 5, 6, 1, 2]、リストを 2 回循環します。

これが私のコードですが、無限再帰ループに入っていると思います。何か助けはありますか?

fun cycle (a, n) = if n >= 0 then cycle (cycle1 a, n-1)
                   else cycle (a, n-1);
4

1 に答える 1

3

n < 0 の場合、循環し続けます。無限にループしないようにするには、単純にそうしないでください。(また、n = 0 の場合はおそらく cycle1 を使用したくないでしょう。)

于 2012-09-01T14:05:12.953 に答える