예전 자유 게시판

류광님 루아 번역서에 대한 질문이 있습니다.

상쓰 2007-01-12 02:01

안녕하세요

루아를 공부하고 있는 학생입니다.

공부하고 있는 도중에 이해가 잘안가는 부분이 있어서 이렇게 질문을 올리게 되었습니다.

p.60 페이지에 sort부분에서 Reverse가 어떻게 작용하는 것인지 잘 모르겠습니다

Reverse가 함수로서 작용하는거 같은데.. 인수도 받지 않는데.. 어떻게 되는 것인지..

답변 부탁드리겠습니다..

(번거롭게 해드려서 죄송합니다.)

새해 복 많이 받으세요~!!



류광 2007-01-12 18:01

예제 코드 밑에서 세 번째 줄 말씀이시지요? 그 부분은 Reserve를 그 자체로 호출해서 뭔가를 수행하려는 것이 아니고, table.sort()이 정렬 과정에서 사용할 수 있도록 넘겨주는 것입니다. table.sort()는 정렬을 진행하는 도중에 두 원소의 대소관계를 비교해야 할 때 Reserve(원소1, 원소2) 를 호출하고 그 결과에 따라 원소1과 원소2의 순서를 결정합니다.

상쓰 2007-01-17 13:01

아.. 답글 감사합니다.. 답글 달아주신 부분은 책을 보면서 이해를 했습니다.. 그런데.. 소스 코드를 보면서 더 정확한 구조를 찾아 보고 싶었으나.. 찾지 못하겠습니다.. 혹시 아신다면 알려주실수 있으신가용?? (사실... 스크립트 언어를 만들려는 생각이 아니기 때문에 내용을 꼭 알고 있을 필요는 없을거 같지만.. 어떤 구조인지가 궁금해서 답글을 올립니다.)

류광 2007-01-21 23:01

table.sort의 C 구현은 루아 배포본의 src/ltablib.c 에 있습니다. 코드를 보면 아시겠지만 같은 일을 하는 루아 코드로 직접 변환할 수 있을 정도로 간단한 구조입니다... 루아에서는 함수도 매개변수로 주고받을 수 있는 객체라는 점만 이해한다면 별로 어렵지 않게 파악할 수 있을 것입니다.