갈루아의 반서재

728x90



리스트는 리스트의 핵심 기능이다. 간단한 리스프 코드를 보자. 아래 코드는 심볼 (expt)와 2개의 숫자로 구성되어 있으며 괄호로 표시되는 리스트에 포함되어 있다.

1
2
[23]> (expt 2 3)
8
cs


Cons Cells


리스프의 리스트는 cons cells(이하 콘셀로 명명) 에 의해 결합된다. 콘셀은 2개의 작은 연결된 박스로 구성되며, 각각은 서로 다른 것을 가리킨다. 서로 다른 2개를 가리킬 수 있기 때문에 콘셀을 연결하셩 리스트에 넣는 것이 가능하다. 사실 리스프는 모든 것이 콘셀로 구성된 추상적인 구조에 불과하다.  

예를 들어, '(1 2 3) 이라는 리스트를 만들었다고 하자. 컴퓨터 메모리에는 다음과 같이 표현된다. 


3개의 콘셀을 통해 구성되는데, 각각의 셀 중 하나는 숫자를 그리고 나머지 하나는 리스트를 가리킨다. 마지막 콘셀은 리스트를 종료시키기 위해 nil 을 가리킨다. 

728x90