2012-09-01 1 views
0

내 기능의 오류를 알아낼 수 없습니다. 목록 번호를 n 번 순환하는 것으로 가정합니다. 예 :SML의 재귀 오류

cycle([1, 2, 3, 4, 5, 6], 2)은 목록을 두 번 순환하여 [3, 4, 5, 6, 1, 2]을 반환합니다.

여기 내 코드가 있지만 무한 반복 루프로 들어가고 있다고 생각합니다. 어떤 도움이 필요합니까?

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

답변

3

n을 <으로 설정하면 순환이 계속됩니다. 반복을 무한히 방지하려면 단순히 그렇게하지 마십시오. (또한 n = 0 일 때 cycle1을 원하지 않을 수도 있습니다.)