Take the 2-minute tour ×

If at the REPL I enter:

(type-of (make-array 5))

then I get the response:


Fair enough. So if at the REPL I enter:

(type-of (make-array (list 5 3 2)))

then I get the response:

(SIMPLE-ARRAY T (5 3 2))

I have two questions.

  1. What is the T telling me here? If it had been NIL instead, what would that have told me?
  2. Where could I have found this answer on my own? I failed to find the answer in (for example) the Lisp HyperSpec.
share|improve this question
GNU Common Lisp (short GCL) and GNU CLISP are two different implementations of Common Lisp. You don't need to tag general questions with all kinds of implementation names. –  Rainer Joswig Jan 3 '12 at 19:20
Ooo. Thank you. Had no idea. –  Bill Evans at Mariposa Jan 10 '12 at 9:45
add comment

2 Answers

up vote 8 down vote accepted

(SIMPLE-ARRAY T (5 3 2)) is a simple array of three dimensions. T says that it is a general array which can contain any element type. T is the most general type.

The hyperspec documents the type SIMPLE-ARRAY here:


share|improve this answer
Ooo. Thanks! Your link was tough sledding for me, but ultimately useful! I figured out, for example, that (type-of (make-array 5 :element-type (integer 0 255))) yields (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (5)). –  Bill Evans at Mariposa Dec 1 '11 at 14:29
add comment

1) If the T had been NIL, you would have a three-dimensional array, specialised in not storing data (no element has the type NIL; I believe all types are a super-type of NIL).

share|improve this answer
This is correct. –  Bill Evans at Mariposa Dec 1 '11 at 16:50
add comment

Your Answer


