From: Willem Broekema
Subject: Re: Array Dimensions
Date: 
Message-ID: <674769eb-4565-4c6c-9cad-822f9b6b2e37@t54g2000hsg.googlegroups.com>
On Jun 30, 9:32 am, Francogrex <······@grex.org> wrote:
> > (setf StoreArray (make-array '(rows 2)))
>
> MAKE-ARRAY: dimension ROWS is not of type `(INTEGER 0 (,ARRAY-
> DIMENSION-LIMIT))
>
> How can I force "make-array" to recognize that "rows" represents a
> value of 5?

Make-array is a normal function, it does not do anything special with
the arguments it got. It's up to you to supply it a list of integers
as first argument.

So the question becomes: how to create a list with two values, the
value of "rows" and 2. For that you need to get rid of the quote (')
as that prevents evaluation of the symbol "rows"; use function LIST
instead. Read more about quoting here:
 http://gigamonkeys.com/book/syntax-and-semantics.html#special-operators

By the way, you should use defparameter or defvar (not setf) to create
global variables:
 http://gigamonkeys.com/book/variables.html#dynamic-aka-special-variables

That whole book is a great introduction to Lisp, by the way.

- Willem