Tracce
/
Common Lisp
Common Lisp
/
Programma
/
Parametri opzionali
Pa

Parametri opzionali in Common Lisp

2 esercizi

Informazioni su Parametri opzionali

Un parametro opzionale è indicato dalla parola chiave &optional della lambda list. I parametri opzionali non sono obbligatori, possono avere un valore predefinito e possono anche specificare un «parametro supplied-p», che sarà «vero» o «falso» a seconda che sia stato fornito o meno un argomento per il parametro.

(defun optional-parameter (&optional (arg -1)) arg)
(optional-parameter)    ; => -1
(optional-parameter 13) ; => 13

I parametri opzionali devono essere inseriti dopo i parametri obbligatori, ma prima dei parametri denominati o rest. Gli argomenti vengono prima associati ai parametri obbligatori, poi ai parametri opzionali e infine ai parametri rest e denominati.

(defun req-and-opt (req &optional (opt -1)) (list req opt)
(req-and-opt 1)    ; => (1 -1)
(req-and-opt 1 13) ; => (1 13)

Sebbene più tipi di parametri possano essere combinati con altri tipi di parametri (parametri opzionali e keyword) questo può essere problematico e va fatto con attenzione. Vedi la sezione "Mescolare tipi di parametri diversi" in Practical Common Lisp.

Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Parametri opzionali

La pratica è bloccata

Sblocca un altro esercizio per esercitarti su Parametri opzionali