Skip to content

Instantly share code, notes, and snippets.

@zhouqiang-cl
Last active December 19, 2016 08:37
Show Gist options
  • Save zhouqiang-cl/2c1eaf674d7473bc174da312fc13fecf to your computer and use it in GitHub Desktop.
Save zhouqiang-cl/2c1eaf674d7473bc174da312fc13fecf to your computer and use it in GitHub Desktop.
common lisp 的函数 MAKE-ARRAY
语法
make-array dimensions &key element-type initial-element initial-contents adjustable fill-pointer displaced-to displaced-index-offset
参数和值
dimensions --- array 的大小和维度的指示符
element-type --- 类型描述符, 默认为 t
initial-element --- 一个 object, 每个element 都初始化成这个
initial-contents --- 一个 object, 将 整个数组 初始化成这个。
adjustable --- 一个 generalized boolean, 默认为 nil
fill-pointer --- array 的 fill-pointer 或者 t 或 nil
displaced-to --- 一个 array 或者 nil, 默认为 nil, 如果 initial-element 或者 initial-contents 提供了, 那这个参数就不应该提供
new-array --- 一个 array
描述
 创建一个 array.
initial-element 和 initial-contents 不能同时使用
 如果 fill-pointer 不为 nil, 那么 array 必须是一维数组, fill-pointer 指示从这个index开始, 后面都是非活跃的
 如果 adjustable 不为 nil, 那么 array 是显式可调整的
 
代码
* (make-array '(4 2 3) :initial-contents
'(((a b c) (1 2 3))
((d e f) (3 1 2))
((g h i) (2 3 1))
((j k l) (0 0 0))))
#3A(((A B C) (1 2 3)) ((D E F) (3 1 2)) ((G H I) (2 3 1)) ((J K L) (0 0 0)))
* (make-array '(4 2 3) :initial-element '3)
#3A(((3 3 3) (3 3 3)) ((3 3 3) (3 3 3)) ((3 3 3) (3 3 3)) ((3 3 3) (3 3 3)))
* (make-array '(4 2 3) :initial-element '(2 3))
#3A((((2 3) (2 3) (2 3)) ((2 3) (2 3) (2 3)))
(((2 3) (2 3) (2 3)) ((2 3) (2 3) (2 3)))
(((2 3) (2 3) (2 3)) ((2 3) (2 3) (2 3)))
(((2 3) (2 3) (2 3)) ((2 3) (2 3) (2 3))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment