يُحدَّد المعامل الاختياري بالكلمة المفتاحية &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.