리스트란 몇개의 데이터를 좌우 한쌍의 괄호로 둘러싸, 하나에 정리한 것입니다. 목록에 저장된 각 데이터를 요소 또는 원자 라고 합니다.
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의 구문과 인수와 반환값은 다음과 같습니다.
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 구문과 인수 및 반환 값은 다음과 같습니다.
이번 정리
AutoLISP의 논리 연산 설명 (0) | 2021.12.22 |
---|---|
프로그래밍의 필수품! AutoLISP의 함수 (1) | 2021.12.22 |
AutoLISP 초보자가 최초로 기억해야 할 함수 5종 (0) | 2021.12.21 |
명령을 호출하는 함수 「command」 (0) | 2021.12.21 |
AutoLISP 개발을 시작합시다! lsp 파일 만들기 ~ 실행 설명 (3) | 2021.12.20 |
댓글 영역