Trilhas
/
Common Lisp
Common Lisp
/
Programa
/
Parâmetros opcionais
Pa

Parâmetros opcionais em Common Lisp

2 exercícios

Sobre Parâmetros opcionais

Um parâmetro opcional é designado pela palavra-chave de lista lambda &optional em uma lista lambda. Parâmetros opcionais não são obrigatórios, podem ter um valor padrão e também podem especificar um "parâmetro supplied-p", que será "true" ou "false" dependendo de ter sido fornecido um argumento para o parâmetro.

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

Parâmetros opcionais devem vir depois dos parâmetros obrigatórios, mas antes dos parâmetros nomeados ou rest. Os argumentos são primeiro associados aos parâmetros obrigatórios, depois aos parâmetros opcionais e, por fim, aos parâmetros rest e nomeados.

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

Embora vários tipos de parâmetros possam ser combinados com outros tipos de parâmetros (parâmetros opcionais e keyword), isso pode ser problemático e deve ser feito com cuidado. Veja a seção "Combinando Diferentes Tipos de Parâmetros" em Practical Common Lisp.

Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Parâmetros opcionais

A prática está bloqueada

Desbloqueie mais 1 exercício para praticar Parâmetros opcionais