অ্যারে হলো Common Lisp-এর একটি খুবই কমন ডেটা টাইপ। এগুলো কনস সেলের একটি ক্রম দিয়ে গঠিত। প্রতিটি car অ্যারের একটি এলিমেন্ট, আর প্রতিটি cdr হয় পরের কনস সেল, নয়তো একটি সমাপ্তিকারী অ্যাটম।
যে অ্যারে খালি অ্যারে দিয়ে শেষ হয়, তাকে "যথাযথ অ্যারে" বলা হয়।
যে অ্যারে এমন একটি অ্যাটম দিয়ে শেষ হয় যা খালি অ্যারে নয়, তাকে "ডটেড অ্যারে" বলা হয় (এটি কীভাবে প্রিন্ট হয় তার ভিত্তিতে: (cons 'a 'b) ;=> (a . b))।
কোনো অ্যারে বৃত্তাকারও হতে পারে, যদি অ্যারের কোনো কনস সেল পরের কোনো কনস সেলের cdr হয়। উদাহরণ: (let ((x (list 1))) (setf (cdr x) x) (write x :stream t :circle t) :done)। বৃত্তাকার অ্যারে নিয়ে কাজ করার সময় সাবধান থাকুন, কারণ *print-circle*-কে t-তে বাইন্ড না করে সেগুলো প্রিন্ট করতে দিলে একটি অসীম লুপ তৈরি হবে এবং REPL আটকে যাবে (এই উদাহরণে write-কে :circle t নির্দিষ্ট করে দেওয়ায় *print-circle-কে t-তে বাইন্ড করা হয়েছে)।
আপনি যেকোনো সংখ্যক অ্যারে নিয়ে append কল করতে পারেন, এমনকি মাত্র ১টি বা একেবারে ০টিও দিয়েও:
(append '(a b c) '(1 2 3)) ; => (A B C 1 2 3)
(append '(a b c) '())) ; => (A B C)
(append '(a b c)) ; => (A B C)
(append) ; => ()
append-এর বিকল্প হিসেবে রয়েছে nconc, যার ফলাফল একই, তবে এটি অ্যারেগুলো পরিবর্তন করে ফেলার সাইড এফেক্ট ফেলে। nconc ব্যবহার করার সময় সাবধান থাকা উচিত, কারণ এর ফলাফল অপ্রত্যাশিত হতে পারে।