갈루아의 반서재

모든 컬렉션은 불변immutable이고 존속적persistent이다.

  • cons 를 통해 컬렉션에 요소를 요청하게 되면, 원래의 컬렉션은 변하지 않고, 단지 그 요소가 추가된 새로운 버전의 컬렉션이 반환된다. 
  • 존속(persistent)이란 구조 공유(structual sharing)라는 기법으로 컬렉션의 신규 버전이 효율적으로 만들어진다는 것을 의미한다.  존속이라는 개념은 저장장치와 관련이 없고, 데이터가 갱신되었지만, 이전 버전의 값이 지워지지 않고 그대로 보존됨을 의미한다.

컬렉션은 다음의 함수를 지원한다.

  • 시퀀스 함수 (first, rest, last) 를 지원한다.
  • count 함수는 컬렉션의 크기를 반환한다.
  • conj 함수는 컬렉션에 하나 이상의 요소를 추가한다. 그 컬렉션의 데이터 구조에 가장 효율적인 방식으로 추가한다. 벡터의 경우 맨 뒤에 요소를 추가한다. 리스트의 경우에 맨 앞에 추가한다.