이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
윤한상
가입: 2008년 9월 14일 올린 글: 10
|
올려짐: 2008년9월14일 17:23 주제: 숙제를 가능한한 최적으로 짜야 되나요? 아님 올바른 결과만 나와도 되나요? |
|
|
제목이 곧 내용 |
|
위로 |
|
|
정영범
가입: 2005년 9월 5일 올린 글: 167
|
올려짐: 2008년9월16일 10:32 주제: |
|
|
올바른 결과를 내는데 집중하세요.
이 수업시간에서는 최적화 보다는 프로그래밍의 미학에 더욱 비중을 두고 있습니다.
재귀적으로 짜는 것보다는 C언어의 스타일로 반복문을 실행시키면서 변수의 값을 변경시켜 프로그래밍하는 것이 더 효율적일 때도 있습니다.
하지만, 그런 경우에도 재귀적으로 프로그래밍을 하세요.
문제에서 반복되는 부분을 찾아 어떻게 작은 문제들로 쪼개서 풀 수 있는지를 배우는 숙제이니까요. |
|
위로 |
|
|
이충민 손님
|
올려짐: 2008년9월18일 1:08 주제: |
|
|
그러니까
코드: | (define (foo x)
(cond ((some-argument-test? x) (error "hey dude"))
((some-end-test? x) foo-end)
(else (bar (foo (foo-bar x)))))) |
이런 procedure가 있을 때, some-argument-test?가 맨 처음 한 번만 하면 recursion 하는 동안 다시 검사할 필요가 없다고 할 때,
코드: | (define (foo x)
(define (recur x)
(if (some-end-test? x)
foo-end
(bar (foo (foo-bar x)))))
(if (some-argument-test? x)
(error "hey dude")
(recur x))) |
이렇게 만드는 노력도 별로 신경쓸 필요가 없다는 말인가요? |
|
위로 |
|
|
이충민 손님
|
올려짐: 2008년9월18일 1:10 주제: |
|
|
수정:
코드: | (define (foo x)
(define (recur x)
(if (some-end-test? x)
foo-end
(bar (recur (foo-bar x)))))
(if (some-argument-test? x)
(error "hey dude")
(recur x))) |
|
|
위로 |
|
|
정영범
가입: 2005년 9월 5일 올린 글: 167
|
올려짐: 2008년9월18일 10:10 주제: |
|
|
예, 신경쓰지 마세요. |
|
위로 |
|
|
|