Μια προαιρετική παράμετρος προσδιορίζεται από τη λέξη-κλειδί &optional της λίστας lambda σε μια λίστα lambda. Οι προαιρετικές παράμετροι δεν είναι υποχρεωτικές, μπορούν να έχουν μια προεπιλεγμένη τιμή και μπορούν επίσης να ορίσουν μια "παράμετρο supplied-p", η οποία θα είναι "αληθής" ή "ψευδής" ανάλογα με το αν δόθηκε όρισμα για την παράμετρο.
(defun optional-parameter (&optional (arg -1)) arg)
(optional-parameter) ; => -1
(optional-parameter 13) ; => 13
Οι προαιρετικές παράμετροι πρέπει να τοποθετούνται μετά τις υποχρεωτικές παραμέτρους αλλά πριν από τις παραμέτρους rest ή τις ονομαστικές παραμέτρους. Τα ορίσματα δεσμεύονται πρώτα στις υποχρεωτικές παραμέτρους, μετά στις προαιρετικές και τέλος στις παραμέτρους rest και στις ονομαστικές παραμέτρους.
(defun req-and-opt (req &optional (opt -1)) (list req opt)
(req-and-opt 1) ; => (1 -1)
(req-and-opt 1 13) ; => (1 13)
Αν και πολλοί τύποι παραμέτρων μπορούν να συνδυαστούν με άλλους τύπους παραμέτρων (προαιρετικές παραμέτρους και παραμέτρους keyword), αυτό μπορεί να είναι προβληματικό και πρέπει να γίνεται προσεκτικά. Δες την ενότητα "Συνδυασμός διαφορετικών τύπων παραμέτρων" στο Practical Common Lisp.