메뉴 건너뛰기

enjoyTools.net

#7. 리스트

2015.04.04 08:05

꿈돌이 조회 수:1714

입력방법

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)


끝.