crash27
가입: 2009년 3월 14일 올린 글: 19
|
올려짐: 2009년3월17일 20:31 주제: HW1 ex8에 대한 것.. |
|
|
풀다보니 이상하네용;;
제가 이해를 잘못한것 인지..
goleft의 경우
인용: |
TOP
/ | \
NODE(a*b) + NODE(c*d | (예제와 똑같은 트리)
라고 트리가 되어있으면
두번째 *의 위치를 표시할때
LOC( *, HAND( c, HAND( [NODE(a*b),+],TOP,[] ), d) 와 같이 되어야하지 않나요?
즉, tree list가 순서를 가지고 있어야 왼쪽 오른쪽을 제대로 정의할수 있을 것 같은데
문제의 예제에서는 NODE[a*b]는 왼쪽->오른쪽 방향의 list로,
NODE(a*b)와 +의 순서는 또 오른쪽->왼쪽 순으로 list를 만들어 놓게 되어있습니다 --;;
(그래서 [+,NODE(a*b)] 가 아닌 [NODE(a*b),+] 가 되야할 것 같단 말이죠;; )
그래서 실제 goleft의 함수중에서
|(LOC(t,HAND(l::left,up,right))) -> LOC(l, HAND(left,up,t::right))
로 구현되는게 아니고
|(LOC(t,HAND(left::l,up,right))) -> LOC(l, HAND(left,up,t::right))
처럼 구현되는게 맞는 것 아닌지 ;; (문법은 틀렸습니다..)
제출은 goleft 한 결과에 goright를 하면 다시 입력한 LOC이 나오도록 제출할 예정입니다만..
제가 이해한게 맞다면 goleft 구현도 바꾸어서 제출해야할 것 같은데요 |
|