이 문제는 한 계정에서 다른 계정으로 돈을 옮기는 프로시저인 transfer 프로시저는
exchage 프로시저처럼 정교한 줄 세우기를 해야하는가를 따지는 문제입니다.
처음에는 해야하는 것인가 고민하였습니다.
하지만 왜 exchange 프로시저가 serialized-exchange 프로시저로 되어야 하는지
연습문제 3.43에서 그린 Timing Diagram을 보고 그 생각이 틀림을 알았습니다.
위 그림을 보면 exchange의 경우 각 계좌에서 balance(잔액)을 살핀 후
그 차이를 변화량으로 사용합니다.
하지만 transfer의 경우 amount를 인자로 받아들이기에
잔액 조회가 동시에 이루어져 혼란이 생기는 일은 발생하지 않습니다.
따라서 굳이 엄밀하게 하지 않아도 된다고 생각합니다.
참조
해럴드 애빌슨, 김재우 역, <컴퓨터 프로그램의 구조와 해석>, 인사이트, 2007, pp. 402
"in OCW" 카테고리의 다른 글
- SICP Exercise 연습문제 3.48 (0)2008/07/18
- SICP Exercise 연습문제 3.47 (0)2008/07/18
- SICP Exercise 연습문제 3.46 (0)2008/07/18
- SICP Exercise 연습문제 3.44 (0)2008/07/17
- SICP Exercise 연습문제 3.43 (0)2008/07/17
- SICP Exercise 연습문제 3.41 (0)2008/07/16
- SICP Exercise 연습문제 3.40 (0)2008/07/16
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.








댓글을 달아 주세요