728x90
리스트
리스트에는 순서가 있다.
인용기호 ' 를 괄호 앞에 붙이고 그 안에 데이터를 넣으면 된다.
문자열, 정수, 키워드 같은 여러 종류의 값을 혼합해 나열할 수 있다.
요소들 사이에 쉼표가 없어도 무방하다. 쉼표는 공백문자처럼 취급되어 무시된다 (가급적 공백을 사용하는 것을 추천한다)
1 2 3 4 | user=> '(1 2 "jam" :marmalade-jar) (1 2 "jam" :marmalade-jar) | cs |
리스트는 첫 요소와 나머지 요소로 구분된다. 첫번째 요소는 first 함수로 가져오고, rest 함수로 나머지 요소를 가져올 수 있다.
1 2 3 4 5 6 7 | user=> (first '(:rabbit :pocket-watch :marmalade :door)) :rabbit user=> (rest '(:rabbit :pocket-watch :marmalade :door)) (:pocket-watch :marmalade :door) user=> | cs |
그리고 first 와 rest 함수를 혼합해서 사용할 수 있다. rest 를 계속 사용해서 리스트의 마지막에 다다르면 nil 을 만나게 된다.
cons 라는 함수로 리스트를 만들 수 있다. cons 함수는 2개의 인수를 받는다. 추가하고자하는 요소와 그 요소가 추가될 리스트이다. nil 은 리스트의 끝을 표시하므로, 요소를 nil 에 cons 하는 방식으로도 가능하다.
1 2 3 4 5 6 7 8 9 | user=> (cons 5 '()) (5) user=> user=> (cons 5 nil) (5) user=> | cs |
인용기호와 더불어 list 함수를 이용해서도 리스트 생성이 가능하다.
1 2 3 4 5 6 7 8 9 10 11 | user=> '(1 2 3 4 5) (1 2 3 4 5) user=> user=> user=> (list 1 2 3 4 5) (1 2 3 4 5) user=> | cs |
728x90
'프로그래밍 Programming' 카테고리의 다른 글
클로저 03. 데이터 컬렉션 - 벡터 (0) | 2018.08.17 |
---|---|
리눅스 계정 및 홈디렉토리 삭제 (0) | 2018.08.14 |
클로저 01. 클로져 식의 기본 구조 이해하기 (단순값) (0) | 2018.08.11 |
클로져 시작하기 Getting Started with Clojure (0) | 2018.08.09 |
우분투 18.04에 클로져 웹 어플리케이션 배포하기 How To Deploy a Clojure Web Application on Ubuntu 18.04 (0) | 2018.08.04 |