Emacs Lisp의 plist 사용법 간단 정리
Emacs
//
2024년 06월 26일 작성
//
2024년 06월 27일 업데이트
plist
Emacs Lisp에서 plist는 'Property List'의 축약어로 다른 언어의 사전형(dictionary type)과 비슷한 기능의 자료구조를 제공한다. 참고로 Common Lisp에도 동일한 자료형은 있으나 사용법은 조금 다른 것 같다.
기본적으로 plist 자료구조는 단순 리스트에 키와 값이 연속으로 나열되는 구조라 표현에서 상당히 간결한 편이다.
plist 인스턴스 생성
plist 데이터를 생성하는 방법은 일반 리스트와 동일하다. 단지 요소 배치를 키와 값 순서대로 나열해야 한다는 특징이 있다.
(setq mycard
'(name "Conrad"
age 20
phone "82-10-1234-5678"
address "Earth, Milkyway, Laniakea Supercluster"
:memo "Lazy Human"))
이렇게 키와 값을 나열하면 plist 형식의 인스턴스가 생성된다.
위의 예에서 약간 특이하게 :memo
만 앞에 콜론(:
)이 붙어있는데 Emacs Lisp에서 심볼을 표현하는 문법이며 이런 형식도 쓸 수 있다는 것을 알려주기 위함이지 다른 의미가 있는 것은 아니다.
plist에서 키의 값 읽기
plist 데이터에서 특정 키의 값을 읽을 때는 plist-get
함수를 사용할 수 있다.
(plist-get mycard 'name)
;; -> "Conrad"
(plist-get mycard :memo)
;; -> "Lazy Human"
plist에서 키의 값 쓰기
plist 데이터에 키와 값을 추가로 쓰거나 업데이트하기 위해서는 plist-put
함수를 사용할 수 있다.
(plist-put mycard 'gender "etc")