게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

친절한 답변 감사드리면서 다음질문 -ㅅ-;;

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2007)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김재왕



가입: 2007년 3월 31일
올린 글: 10

올리기올려짐: 2007년4월1일 20:44    주제: 친절한 답변 감사드리면서 다음질문 -ㅅ-;; 인용과 함께 답변

이제 조금 무슨 문제인지 감을 잡았다는..;
node와 leaf가 구분이 되야 하는 거라면
is-empty-tree? 에 leaf로 만들어진 tree가 들어가도 false가 되는거겠죠?
is-leaf? 에 node로 만들어진 tree가 들어갈때 false인 것 처럼?

예를 들자면 leaf 함수는 리스트를 값으로 가질 수도 있으니
빈리스트 역시 leaf함수의 인자가 될 수 있을테고
이렇게 만들어진 잎새나무는
node에 빈리스트를 넣어 만들어진 나무와는
구분이 되어야하는건가 하는 문제입니다;

그렇다면 잎새나무나 나무를 scheme에서 기본으로 주는
list나 pair와 같은 형식으로 만들어 버리면
위의 함수들에 leaf나 node로 만들어진 값이 아니라
list나 pair를 넣으면 true가 나올테니 이러한 형식을 그대로 가져다
쓰면 안되는거군요?
(너무 당연한 질문인가; 그래도 확실히 해두고 싶어서; )

다시 수정으로 질문하고자 했던 예를 추가합니다;

가령 (define (leaf x) (list x))
와 같이 정의하고
(define ex1 (leaf 'a))
(define ex2 (list 'a))
와 같이 정의한 후
(is-leaf? ex1)
(is-leaf? ex2)를 각각 호출하면
#t와 #f가 나와야 하는지를 묻고 싶었습니다;
물론 예를 든것처럼 하면 둘을 구분할 방법이 없으니 둘다 #t가 나오겠죠;


김재왕 가 2007년4월1일 20:57에 수정함, 총 2 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2007년4월1일 20:52    주제: 인용과 함께 답변

1.

인용:
is-empty-tree? 에 leaf가 들어가도 false가 되는거겠죠?


그렇습니다.

2.

인용:
is-leaf? 에 leaf가 들어갈때 false인 것 처럼?


음? 오타인 것으로 생각하고 있겠습니다. Smile => 수정하셨군요 ^^;; 실시간이다보니 sync가 안맞는 수가 생기는군요.

3.

인용:
그렇다면 leaf나 false를 scheme에서 기본으로 주는
list나 pair와 같은 형식으로 만들어 버리면
위의 함수들에 leaf나 node로 만들어진 값이 아니라
list나 pair를 넣으면 true가 나올테니 이러한 형식을 그대로 가져다
쓰면 안되는거군요?
(너무 당연한 질문인가; 그래도 확실히 해두고 싶어서; )


첫번째 줄에 "leaf나 false를"에서의 false는 혹시 node의 오타인가요?

위의 함수들은 is-empty-tree? is-leaf? 를 말씀하시는 것일텐데

list나 pair를 넣으면 true가 나올지 false가 나올지는

leaf, node 함수와

is-empty-tree?, is-leaf? 함수를 어떻게 구현하셨는지에 따라서 달라질 수 있습니다.

제가 도와드릴 수 없을 것 같네요.


너무 당연한 질문은 아닌 것 같습니다. 제가 질문하신 것을 완전히 이해하지 못한 것 같아요. 괜찮으시다면 보다 자세히 질문해주시면 좋을 것 같네요.
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
공순호



가입: 2005년 9월 29일
올린 글: 363
위치: 302동 312-2호

올리기올려짐: 2007년4월1일 21:03    주제: 인용과 함께 답변

0.

추가적인 질문 사항에 대해서는 답글로 달아주시는 편이

제가 알아보기가 쉬운 것 같습니다. Smile


1.

인용:
가령 (define (leaf x) (list x))
와 같이 정의하고
(define ex1 (leaf 'a))
(define ex2 (list 'a))
와 같이 정의한 후
(is-leaf? ex1)
(is-leaf? ex2)를 각각 호출하면
#t와 #f가 나와야 하는지를 묻고 싶었습니다;



문제의 정의에 의해서 (is-leaf ex1)은 #t를 만들어내야합니다.

이 경우에는 ex1 과 ex2가 동일하므로

(is-leaf ex2)의 경우에도 #t를 만들어내겠네요.

하지만, 이것은 올바른 동작은 아니겠지요.

결과적으로 (define (leaf x) (list x)) 와 같이 leaf를 정의하면 옳지 않다는 것에 도달할 수 있겠습니다.


자, 이제 곰곰히 생각해보실 시간인가요?
_________________
- soon@ropas
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2007) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay