공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2007년4월1일 23:51 주제: |
|
|
0.
교과서를 읽을 수 있는 엄두와 여유를 속히 정비하시기를 바랍니다.
1.
인용: | if나 cond안에서 define을 쓰지 못하는 거 같은데요, |
그렇습니다.
scheme program은 define과 expression으로 이루어져있고, 둘 사이의 구분은 명확합니다.
if/cond에서의 test, consequent, alternate에는 expression만 올 수 있습니다.
2.
인용: | 그럼 조건문 안에서는 외부에서 만든 함수를 호출하는 것만 가능하고, 새로운 procedure를 만들어서 조건문 안에서 재귀호출하는 게 불가능한 건가요?
|
그렇지는 않습니다.
expression에서 쓸 수 있는 것들에는 let도 있습니다.
예를 들면
코드: | (cond
((> 100 0)
(let
((add1 (lambda (x) (+ x 1))))
(add1 0)))
(else -100)
)
|
과 같은 프로그램이 가능합니다.
100이 0보다 크면
x를 받아서 x+1을 돌려주는 add1함수를 정의하고, 그 함수를 이용하는
프로그램을 작성하실 수 있습니다. _________________ - soon@ropas |
|