게시판 인덱스

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

ex4 질문입니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2009)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
노건일
손님





올리기올려짐: 2009년9월23일 20:24    주제: ex4 질문입니다. 인용과 함께 답변

어째 질문을 할 수록 난이도가 점점 올라가는듯하네요..
그래도 모르는건 물어봐야겠죠!

문제4번에 나무구조의 예로 (a*b + c*d )를 들고

두번째 곱셈에서의 위치를

LOC(LEAF *,
HAND([LEAF c],
HAND([LEAF +; NODE [LEAF a; LEAF *; LEAF b]],
TOP,
[]),
[LEAF d]))

라고 정의했는데요, 일단 제가 상상하는 나무구조는 아래와 같습니다.

TOP
`
/ | \ ` : node
` + `
/|\ /|\
a * b c * d

그럼 c와 d사이에 있는 *의 입장에서(*의 위치에서)

HAND(left, zipper, right)라는 zipper의 구조에 따라

left = LEAF c
right = LEAF d
zipper(혹은 up) = HAND([LEAF +; NODE [LEAF a; LEAF *; LEAF b]],
TOP,
[])
이고, 다시 그 안의 zipper를 분해하면

left = [LEAF +; NODE [LEAF a; LEAF *; LEAF b]] <--
right = []
zipper = TOP

인데, 여기서 left부분이 잘 이해가 되지 않습니다.

`
/ | \
` + `
/|\ /|\
a * b c * d

어떻게 이 왼쪽 model이 저렇게 표현되는지...
오히려 left = [NODE [LEAF a; LEAF *; LEAF b] ; LEAF +]가 되는게 아닌지..

서론이 굉장히 길었지만, 결국 질문은

1. 제가 상상하고 있는 나무구조가 올바른가요?
2. 혹시 zipper의 왼쪽나무를 셀때는 오른쪽 -> 왼쪽의 순서로 가지를 세나요?
3. 실제로 코딩할때는 LEAF "a" 를 사용하는게 맞나요? (string이니까...)
위로
허기홍



가입: 2007년 9월 27일
올린 글: 231

올리기올려짐: 2009년9월23일 20:49    주제: 인용과 함께 답변

1. 그림이 보기 힘들지만... 잘 이해하신 것 같습니다.

2. 맞습니다. 왼쪽 나무든 오른쪽 나무든 묘사할 때는 현재 위치에서 가까운 곳부터 묘사합니다. (구현해보시면 그게 더 편하다는 것을 느끼실겁니다.)

3. 맞습니다. 스트링입니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2009) 시간대: GMT + 9 시간(한국)
페이지 11

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


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