Διαδρομές
/
Common Lisp
Common Lisp
/
Ύλη
/
Προαιρετικές παράμετροι
Πρ

Προαιρετικές παράμετροι σε Common Lisp

2 ασκήσεις

Σχετικά με την έννοια Προαιρετικές παράμετροι

Μια προαιρετική παράμετρος προσδιορίζεται από τη λέξη-κλειδί &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.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Προαιρετικές παράμετροι

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 1 ακόμη άσκηση για να εξασκηθείς στην έννοια Προαιρετικές παράμετροι