LISP의 배열(Arrays)학부공부/인공지능2018. 10. 12. 00:49
Table of Contents
반응형
배열 (Arrays)
일차원 or 다차원 배열은 make-array 함수를 사용하여 정의 될 수 있다.
배열에 저장되는 내용물(items)은 어떠한 종류의 LISP 대상이라도 무방하고 가능하다.
예를 들어서 설명해 보자.
myarray라는 배열명으로 세개의 셀(cell)을 가진 배열을 만든다면 ,
아래와 같이 인용부호가 붙지 않은 배열명에 make-array 함수와 셀 숫자로써 생성한 배열을 setf or setq 를 써서 할당하는 방식을 취한다.
(setf myarray (make-array ‘(3)))
è #( NIL NIL NIL )
위의 함수는 맨 앞에 # , 그 다음에 각 셀이 nil로 초기화된 배열을 결과 값으로 되돌려 주고 있음을 알 수 있다.
셀의 내용물에 접근하려면 두 개의 인수 , 배열명과 첨자값을 가지는 aref 함수를 사용한다 .
셀의 첨자값은 0부터 부여되기 시작하므로 , 첨자 값 2는 세번째 셀을 뜻한다.
(aref myarray 2) à NIL
배열에 내용물을 저장하는 것은 어떻게 하면 될 까??
setf함수를 사용하여서 특성리스트에 특성들을 저장했던 것과 같은 방법으로 하면 된다.
(setf (aref myarray 0) 10)à 10
(setf (aref myarray 1) ‘wow)à WOW
(setf (aref myarray 2) ‘(wow1 wow2 wow3)) à (WOW1 WOW2 WOW3)
반응형
'학부공부 > 인공지능' 카테고리의 다른 글
LISP의 Lambda 함수 ( Lambda Functions ) (0) | 2018.10.13 |
---|---|
LISP의 대응함수 ( Mapping Functions) (0) | 2018.10.12 |
LISP의 특성리스트(Property Lists) (0) | 2018.10.12 |
LISP의 반복과 순환 ( Iteration and Recursion ) (0) | 2018.10.09 |
LISP 의 지역 변수 구조 ( Constructs for Local variables ) (0) | 2018.10.09 |
@IT grow. :: IT grow.
#IT #먹방 #전자기기 #일상
#개발 #일상