728x90
리스트는 리스트의 핵심 기능이다. 간단한 리스프 코드를 보자. 아래 코드는 심볼 (expt)와 2개의 숫자로 구성되어 있으며 괄호로 표시되는 리스트에 포함되어 있다.
1 2 | [23]> (expt 2 3) 8 | cs |
Cons Cells
리스프의 리스트는 cons cells(이하 콘셀로 명명) 에 의해 결합된다. 콘셀은 2개의 작은 연결된 박스로 구성되며, 각각은 서로 다른 것을 가리킨다. 서로 다른 2개를 가리킬 수 있기 때문에 콘셀을 연결하셩 리스트에 넣는 것이 가능하다. 사실 리스프는 모든 것이 콘셀로 구성된 추상적인 구조에 불과하다.
예를 들어, '(1 2 3) 이라는 리스트를 만들었다고 하자. 컴퓨터 메모리에는 다음과 같이 표현된다.
3개의 콘셀을 통해 구성되는데, 각각의 셀 중 하나는 숫자를 그리고 나머지 하나는 리스트를 가리킨다. 마지막 콘셀은 리스트를 종료시키기 위해 nil 을 가리킨다.
728x90