이 문제는 프로시저를 실행시켰을 때 결과와 이유를 묻습니다.

 

c19

프로시저 f는 인자로 받은 프로시저에 인자 2를 주어 실행시킵니다.

따라서 위의 두 식은 인자로 들어온 프로시저가 잘 실행이 됩니다.

 

하지만 (f f)의 경우 에러가 발생합니다.

그 이유는 '(f f) -> (f 2) -> (2 2)'가 되기 때문입니다.

 

 

이 문제는 다른 연습문제에 비해 난이도가 낮아

함정이나 다른 생각할거리가 있나 고민하였습니다.

하지만 다른 사람들의 글을 보니 그런 것은 없는 듯싶네요.

다만, lambda로 적혀진 프로시저도 인자로 쓸 수 있는 것을 보여주는 듯싶습니다.

 

 

참조

Structure and Interpretation of Computer Programs 2/E - Page 85

크리에이티브 커먼즈 라이선스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1273

댓글을 달아 주세요

[로그인][오픈아이디란?]