이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
최재민
가입: 2013년 9월 26일 올린 글: 15
|
올려짐: 2013년10월12일 12:49 주제: recursive function이 끝나는지 확인하는 것에 대한 질문입니다 |
|
|
제가 4-1에서 element-of-set? 이라는 recursive function을 사용하는데요,
이 함수는 element와 set 두 parameter를 받아 element가 set에 포함되는지를 boolean으로 리턴해주는 함수입니다.
이 함수가 끝난다는 것을 증명하기 위해 recursive call이 일어날 때마다 set의 크기가 점점 줄어든다는 것을 이용했는데요,
그런데 이 function이 다른 function에 의해 여러번 call되는 함수라 문제가 생기는 것 같습니다.
한 set에 대해서는 줄어들지만 다른 set이 input으로 들어오게 되면 set의 크기가 다시 증가할수도 있기 때문인데요, 다음 예시를 보시면 이해가 빠를 것 같습니다.
element-of-set decreasing: 1
element-of-set decreasing: 0
element-of-set decreasing: 4
element-of-set decreasing: 3
element-of-set decreasing: 1
element-of-set decreasing: 0
element-of-set decreasing: 3
element-of-set decreasing: 1
전체 코드를 돌리게 되면 이런 식으로 나타나게 되는데 괜찮은건가요? |
|
위로 |
|
|
강지훈
가입: 2008년 9월 2일 올린 글: 291 위치: 302동 312-2호
|
올려짐: 2013년10월12일 21:46 주제: |
|
|
1)
element-of-set decreasing: 1
element-of-set decreasing: 0
2)
element-of-set decreasing: 4
element-of-set decreasing: 3
element-of-set decreasing: 1
element-of-set decreasing: 0
3)
element-of-set decreasing: 3
element-of-set decreasing: 1
세개가 각기 다른 call인 경우인가요?
제가 이해하는게 맞다면, 재민님의 코드는 옳을겁니다. _________________ 강지훈
프로그래밍의 원리 조교
Jeehoon Kang
TA, Principles of Programming |
|
위로 |
|
|
최재민
가입: 2013년 9월 26일 올린 글: 15
|
올려짐: 2013년10월12일 22:08 주제: |
|
|
네 3가지 모두 다른 콜 맞습니다.
혹여나 저렇게 나오면 틀리다고 채점하실까봐 여쭤봤습니다~ |
|
위로 |
|
|
|