مسیر
/
Common Lisp
Common Lisp
/
برنامه‌ی درسی
/
پارامترهای اختیاری
پا

پارامترهای اختیاری در Common Lisp

2 تمرین

درباره‌ی پارامترهای اختیاری

پارامتر اختیاری در «لیست لامبدا» با کلیدواژه‌ی &optional مشخص می‌شود. پارامترهای اختیاری الزامی نیستند، می‌توانند مقدار پیش‌فرض داشته باشند و همچنین می‌توانند یک «پارامتر 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)

هرچند می‌توان چند نوع پارامتر را با انواع دیگر پارامترها (پارامترهای اختیاری و کلیدواژه‌ای) ترکیب کرد، این کار می‌تواند مشکل‌ساز باشد و باید با احتیاط انجام شود. بخش «ترکیب انواع مختلف پارامترها» را در کتاب Practical Common Lisp ببینید.

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

پارامترهای اختیاری را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین پارامترهای اختیاری قفل 1 تمرین دیگر را باز کنید