#7. 리스트
2015.04.04 08:05
입력방법
list(1 2 3 4 5)
'(1 2 3 4 5)
cons : 리스트에 항목(변수 또는 리스트) 추가
a = list(1 2 3 4 5)
cons("added" a)
=> ("added" 1 2 3 4 5)
cons(a a)
=> ((1 2 3 4 5) 1 2 3 4 5)
append : 리스트에 다른 리스트 추가
a = list(1 2 3 4 5)
append("added" a)
=> 에러 발생됨
append(a a)
=> (1 2 3 4 5 1 2 3 4 5)
car / cdr : car는 리스트 첫번째 변수 반환, cdr은 리스트 뒤쪽 나머지를 반환
- 좋은거: caar, cddr, cadr, cdar 식으로 한 방에 중첩 적용 가능하다. 순서는 뒤에서 앞으로 역순임.
a = list(1 2 3 4 5)
car(a)
=> 1
cdr(a)
=> (2 3 4 5)
cddr(a)
=> (3 4 5)
cadr(a)
=> 2
cdar(a)
=> 빈 값
caddr(a)
=> 3
nth : 리스트내 x번째 위치한 값 반환
a = list(1 2 3 4 5)
nth(0 a)
=> 2
nth(1 a)
=> 2
nth(2 a)
=> 3
member : 리스트내 x번째부터 끝순까지의 리스트 반환
a = list(1 2 3 4 5)
member(0 a)
=> nil
member(1 a)
=> (1 2 3 4 5)
member(2 a)
=> (2 3 4 5)
member(3 a)
=> (3 4 5)
member(4 a)
=> (4 5)
length : 리스트 크기 반환
a = list(1 2 3 4 5)
length(a)
=> 5
a = list(1 2 3)
length(a)
=> 3
setof : 리스트 값 중에서 지정한 규칙에 맞는 것만 반환
a = list(1 2 3 4 5)
setof(y a if(y==1 || y ==2 then t else nil))
=> (1 2)
setof(y a if(y==1 || y ==2 then nil else t))
=> (3 4 5)
setof(y a oddp(y))
=> (1 3 5)
setof(y a evenp(y))
=> (2 4)
끝.