مسیر
/
Common Lisp
Common Lisp
/
برنامه‌ی درسی
/
پارامترهای کلیدواژه
پا

پارامترهای کلیدواژه در Common Lisp

1 تمرین

درباره‌ی پارامترهای کلیدواژه

در Common Lisp، به پارامترهای نام‌دار، «پارامترهای کلیدواژه» می‌گویند.

پارامترهای کلیدواژه با کلیدواژه‌ی فهرست لامبدای &key در یک فهرست لامبدا مشخص می‌شوند. پارامترهای کلیدواژه اجباری نیستند، می‌توانند مقدار پیش‌فرض داشته باشند و همچنین می‌توانند یک «پارامتر supplied-p» مشخص کنند که بسته به اینکه آرگومانی برای پارامتر فراهم شده باشد، «درست» یا «غلط» خواهد بود.

(defun keyword-parameter (&key (arg -1) arg)
(keyword-parameter)         ; => -1
(keyword-parameter :arg 13) ; => 13

در آرگومان‌های یک تابع، پارامترهای کلیدواژه با «اسم کلیدواژه»ی خود مشخص می‌شوند که به‌طور پیش‌فرض، همان اسم پارامتر در قالب نماد کلیدواژه است (یعنی پارامتر کلیدواژه‌ی name اسم کلیدواژه‌ی :name را دارد). می‌توان با استفاده از فهرستی از اسم کلیدواژه و اسم پارامتر، به‌جای فقط اسم پارامتر، اسم دیگری برای پارامتر کلیدواژه مشخص کرد:

(defun other-keyword-name (&key ((other-name arg))) (list arg))
(other-keyword-name 'other-name 5) ; => (5)

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

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

پارامترهای کلیدواژه را یاد بگیرید