Common Lisp에서 List, Array, Vector, String, Sequence 차이점

List
 - 순차적 접근 가능.

Array
 - 임의의 접근 가능.
 - 여러 차원도 가능.
 - 기본적으로 고정 사이즈이지만, 제한된 범위 내에서 사이즈를 변경하거나(:fill-pointer), 제한 없이 사이즈를 변경할 수 있는(:adjustable) 옵션을 줄 수 있다.

Vector
 - Array 중 1차원 Array.

String
 - Vector 중 character를 구성 요소로 하는 Vector

Sequence
 - List, Vector의 상위 개념


List의 생성

(list a b c)
-> (a b c)

'(a b c)
-> (a b c)

(cons a '(b c))
-> (a b c)



Vector의 생성

(vector 1 2 3)
-> #(1 2 3)

#(1 2 3)
-> #(1 2 3)

(make-array 3 :initial-element 1)
-> #(1 1 1)



,