您的位置:首页 > 其它

Common Lisp专题4:数组

2016-01-03 00:00 197 查看
1)用make-array创建数组:

CL-USER> (make-array 5 :initial-element nil)
#(NIL NIL NIL NIL NIL)
CL-USER> (make-array 5 :initial-contents '(a e i o u))
#(A E I O U)
CL-USER> (setf arr (make-array 5 :initial-contents '(a e i o u)))
#(A E I O U)
CL-USER> arr
#(A E I O U)


也可以简单一点:

CL-USER> (setf a '#(nil nil nil nil nil))
#(NIL NIL NIL NIL NIL)

2)创建二维数组:

CL-USER> (setf arr (make-array '(2 3) :initial-element nil))
#2A((NIL NIL NIL) (NIL NIL NIL))
CL-USER> (make-array (list 2 2))
#2A((0 0) (0 0))
CL-USER> (make-array (list 2 2) :initial-contents '((1 2) (3 4)))
#2A((1 2) (3 4))
CL-USER> (make-array '(2 2) :initial-contents '((a b) (c d)))
#2A((A B) (C D))
CL-USER> (setf arr (make-array '(2 3) :initial-element nil))
#2A((NIL NIL NIL) (NIL NIL NIL))
CL-USER> arr
#2A((NIL NIL NIL) (NIL NIL NIL))

3)用aref访问数组元素

CL-USER> (setf arr (make-array '(2 3) :initial-element nil))
#2A((NIL NIL NIL) (NIL NIL NIL))
CL-USER> arr
#2A((NIL NIL NIL) (NIL NIL NIL))
CL-USER> (make-array 5 :initial-element nil)
#(NIL NIL NIL NIL NIL)
CL-USER> (setf arr (make-array 5 :initial-element nil))
#(NIL NIL NIL NIL NIL)
CL-USER> (aref arr 0)
NIL
CL-USER> (aref arr 3)
NIL
CL-USER> (setf arr (make-array 5 :initial-contents '(a e i o u)))
#(A E I O U)
CL-USER> arr
#(A E I O U)
CL-USER> (aref arr 0)
A
CL-USER> (aref arr 3)
O
CL-USER> (setf arr (make-array '(2 2) :initial-contents '((a b) (c d))))
#2A((A B) (C D))
CL-USER> arr
#2A((A B) (C D))
CL-USER> (aref arr 0 1)
B
CL-USER> (aref arr 1 0)
C
CL-USER> (aref arr 1 1)
D


4)访问二维数组

CL-USER> (setf arr (make-array '(2 2) :initial-contents '((a b) (c d))))
#2A((A B) (C D))
CL-USER> arr
#2A((A B) (C D))
CL-USER> (aref arr 0 0)
A
CL-USER> (aref arr 1 0)
C


5)一维数组也是向量

CL-USER> (vector "a" 'b 5)
#("a" B 5)
CL-USER> (setf arr (vector "a" 'b 5))
#("a" B 5)
CL-USER> arr
#("a" B 5)


(未完待续。。。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: