리스트를 작성하는 함수 「list」 「cons」
목록 만들기 list
list 동작
리스트란 몇개의 데이터를 좌우 한쌍의 괄호로 둘러싸, 하나에 정리한 것입니다. 목록에 저장된 각 데이터를 요소 또는 원자 라고 합니다.
AutoLISP에서는 변수 유형 선언이 필요하지 않으므로 목록에 AutoCAD의 모든 데이터를 저장할 수 있습니다.
목록 만들기
숫자의 1과 2를 요소에 가지는 리스트를 예로 설명합니다.
(list 1 2)
설명 자체는 매우 간단하고, list 뒤에 요소가 되는 데이터를 나란히 기술할 뿐입니다. 요소가 2개 또는 3개의 숫자인 경우 2D 또는 3D 좌표로 처리할 수도 있습니다.
또, 리스트 자체를 요소로 할 수도 있어, 프로그램의 기술은 다음과 같이 됩니다.
(list (list 1 2) 3)
싱글 쿼테이션으로 대용할 수 있다
함수 list는 「list」라고 기술하는 대신, 「'」(싱글 쿼테이션)로 대용하는 것이 가능합니다.
다음의 리스트는 다른 기술을 하고 있습니다만, 반환값은 같은 리스트가 됩니다.
(list 1 2)
'(1 2)
"'"는 quote 라는 함수를 간략하게 표현한 것으로, 주어진 인수를 평가하지 않고 돌려줍니다. 따라서 위의 두 목록은 동일한 목록을 반환합니다.
list 서식
list의 구문과 인수와 반환값은 다음과 같습니다.
점 쌍 만들기 cons
cons 동작
cons도 list와 같이 리스트를 작성하는 함수이지만, 작성되는 리스트는 도트쌍 이라고 불리는 특수한 리스트가 됩니다.
도트 쌍이란?
도트쌍이란 아래와 같이 요소가 2개만으로 , 요소 사이에 마침표(도트)가 들어간 형식 으로 표현되는 리스트입니다.
(1 . "A")
cdr의 반환 값은 일반 목록의 경우 목록 또는 nil이지만 점 쌍의 경우 두 번째 요소는 직접 얻을 수 있습니다.
덧붙여서, 도형 정의 데이터의 요소도 모두 도트쌍이 되고 있습니다.
참고로 점 쌍은 일반 목록과 다릅니다. 그 때문에, 통상의 리스트를 인수로 하는 append나 subst등의 함수에서는 사용할 수 없기 때문에 주의해 주세요.도트 쌍 만들기
그러면 cons 설명에 대해 설명합니다. 위의 닷 쌍의 예를 cons로 작성하는 경우는 다음과 같이 기술합니다.
(cons 1 "A")
list와 마찬가지로 요소를 나란히 작성하면됩니다. list와 같이 '''를 사용하여 간단하게 표현할 수 없습니다.
또, 2 번째의 요소에 리스트를 기술했을 경우, 반환값은 닷 쌍이 아니고 통상의 리스트가 됩니다.
(cons 1 (list 2 3))
위의 반환 값은 다음과 같은 일반 목록입니다.
(1 2 3)
cons 형식
cons 구문과 인수 및 반환 값은 다음과 같습니다.
요약
이번 정리
- 목록은 AutoCAD의 모든 데이터를 저장할 수 있습니다.
- 목록에 저장하는 데이터를 요소 또는 원자라고 합니다.
- list로 작성한 리스트는 좌표로서 취급할 수 있다
- cons에서는 도트 쌍을 만들 수 있습니다.