공순호
가입: 2005년 9월 29일 올린 글: 363 위치: 302동 312-2호
|
올려짐: 2007년3월7일 11:42 주제: 3/7 실습 질문들 답변 |
|
|
안녕하세요, 공순호 조교 입니다.
3/7 실습 도중 질문 사항에 대해서 정리해 보았습니다.
1. comment
; 을 이용하시면 line comment가 됩니다.
코드: |
In a Scheme program, any line that begins with one or more semicolons is a comment:
; This is a comment. DrScheme will store it along with the rest of the
; text of a program, but does not even attempt to execute any part of it.
|
2. (= #t #f) ?
scheme에서 = 는 수를 비교하는 것으로만 이용됩니다.
boolean을 비교하고자 하면, eq?를 이용하여
하시면 됩니다.
3. 3 == (3) == ((3)) ?
처음으로 scheme을 해보신 분들은 괄호 때문에 어려움을 겪으실 수도 있을 것으로 생각합니다.
C/Java와 같은 언어에 익숙하신 분들은
3, (3), ((3)) 이 모두 같은 것을 의미한다고 생각하시고, scheme에서도 이렇게 작성을 하기 쉽습니다. 하지만 scheme에서는 괄호가 의미를 가집니다.
결코 "있으면 좋고, 없어도 그만인 것"이 아닙니다.
scheme은는 () 는 procedure application을 나타냅니다.
즉, () 안은 반드시! procedure/special form 이어야 합니다.
3은 procedure가 아닙니다. 따라서 (3)은 올바른 것이 아닙니다.
+는 primitive procedure입니다. 따라서 (+ 3 4)는 올바른 것입니다.
하지만 ((+ 3 4))는 다시 올바른 것이 아닙니다. ((+ 3 4)) => (7)이 되는데 (7)은 올바른 것이 아니기 때문입니다.
이러한 점을 유의하시고 실습/숙제하시면 좋을 것 같습니다.
p.s.> C 언어에서 f(int x, int y)에 대한 호출로 f(3, 4) 은 올바르지만, f((3, 4))은 올바르지 않음을 생각해보시면 좋을 것 같습니다.
p.s.2.> () 안에 special form(define, cond, ...) 등이 오는 것도 가능하다는 것은 알고 계실 것으로 생각합니다. |
|