किसी लैम्ब्डा लिस्ट में वैकल्पिक पैरामीटर को &optional लैम्ब्डा लिस्ट कीवर्ड से निर्दिष्ट किया जाता है।
वैकल्पिक पैरामीटर अनिवार्य नहीं होते, इनका एक डिफॉल्ट हो सकता है और ये एक supplied-p पैरामीटर भी निर्दिष्ट कर सकते हैं, जो सही या गलत होता है, इसके आधार पर कि उस पैरामीटर के लिए कोई आर्गुमेंट दिया गया था या नहीं।
(defun optional-parameter (&optional (arg -1)) arg)
(optional-parameter) ; => -1
(optional-parameter 13) ; => 13
वैकल्पिक पैरामीटर आवश्यक पैरामीटर के बाद, लेकिन नाम वाले या रेस्ट पैरामीटर से पहले रखे जाने चाहिए। आर्गुमेंट पहले आवश्यक पैरामीटर से बाँधे जाते हैं, फिर वैकल्पिक पैरामीटर से, और अंत में रेस्ट और नाम वाले पैरामीटर से।
(defun req-and-opt (req &optional (opt -1)) (list req opt)
(req-and-opt 1) ; => (1 -1)
(req-and-opt 1 13) ; => (1 13)
हालाँकि कई तरह के पैरामीटर दूसरे तरह के पैरामीटर (वैकल्पिक और कीवर्ड पैरामीटर) के साथ जोड़े जा सकते हैं, फिर भी यह मुश्किल हो सकता है और इसे सावधानी से करना चाहिए। Practical Common Lisp में "अलग-अलग पैरामीटर टाइप मिलाना" वाले हिस्से को देखें।