제곱근을 구하는 식에서 사용한 if 라는 특별문을 임의의 프로시져로 바꾸어서 사용하는 문제이다.
즉,
를 다음과 같이 바꾸어서 실행했을 때 어떤 결과 값이 나오겠느냐….이다.
처음에 혼자서 문제를 풀어 보았다. 잘 되지 않아서 정답을 찾아 보았다…
관련 링크 : http://nosyu.egloos.com/4016689
아하! 안되는 것이 맞구나…근데 내꺼는 코드가 약간 이상한데…다시 수정을 한 후, 실행을 해 보았다.
그런데 결코 실행되어서는 안되는 코드가 척척 실행되는 것이다.
왜 이럴까…한참을 고민하고 또 고민했다…
나중에서야 어이없이 답을 알게 되었다.
깜박하고 제일 마지막….
부분을 입력을 안했던 것이다…..그런데 이상하게 실행을 척척 잘 되더라.
원래는 되지 않아야 하는것이 정상일텐데…아마도 아직 내가 모르는 무언가가 있는 듯 하다.
아무튼 문제를 해결하니 예상값이 정확하게 나왔다.
참, 답은 무한 루프이다.
변경된 new-if 에서 인자를 먼저 계산하니, (sqrt-iter (improve guess x) x) 부분에서 자꾸만 루프가 발생하는 것이다.

오른쪽 하단에 러닝이 계속 돌아가는 것이 보인다.
Stop을 누르니 kill 하겠냐는 메시지가 나온다. 당연히(?) Kill 했다.





