이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김성학
가입: 2013년 9월 4일 올린 글: 26
|
올려짐: 2013년9월18일 10:57 주제: 자가채점기 질문입니다. |
|
|
이번 자가채점기는 첫 과제와 달리 몇몇 부분이 추가되었는데요,
이 추가된 코드가 어떤 역할을 하는 지를 알 지 못해 여쭙습니다.
common-grade에서 output 함수는 어떤 함수인가요?
특히 ([(lambda (exn) #t) (lambda (exn) (printf "X (error)\n"))])이 무슨 일을 하는 지가 이해되지 않습니다.
또한 다른 채점기 코드에서 begin 함수를 비롯해서 output을 call할 때
(output (lambda () (equal? (zipper '(1) '(2)) '(1 2))))와 같이 lambda가 쓰이는 것은 어떤 이유에서 인가요?
감사합니다. 좋은 추석 보내세요! |
|
위로 |
|
|
강지훈
가입: 2008년 9월 2일 올린 글: 291 위치: 302동 312-2호
|
올려짐: 2013년9월18일 14:59 주제: |
|
|
먼저 자가채점기 코드를 이해할 수 있으만큼 진도를 나가지 않은 만큼,
코드를 이해하지 못하셔도 전혀 상관 없습니다.
그래도 간단히 답을 드리자면,
1) with-handler라는 함수로 예외를 처리합니다. 제시하신 ([(lambda (exn) #t) (lambda (exn) (printf "X (error)\n"))])는, 모든 예외에 대해, "X (error)"라고 출력하라는 의미입니다.
2) 예외가 날 수 있는 코드가 output이 예외처리 하는 도중에 실행할 수 있도록 한 것입니다. _________________ 강지훈
프로그래밍의 원리 조교
Jeehoon Kang
TA, Principles of Programming |
|
위로 |
|
|
김성학
가입: 2013년 9월 4일 올린 글: 26
|
올려짐: 2013년9월18일 19:41 주제: |
|
|
답변 감사합니다!! |
|
위로 |
|
|
|