Por padrão, uma função em LISP retorna o valor da última expressão avaliada como o valor de retorno. O exemplo a seguir demonstraria isso.
Exemplo 1
Crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.
(defun add-all(a b c d)
(+ a b c d)
)
(setq sum (add-all 10 20 30 40))
(write sum)
(terpri)
(write (add-all 23.4 56.7 34.9 10.0))
Quando você executa o código, ele retorna o seguinte resultado -
100
125.0
No entanto, você pode usar o return-from operador especial para retornar imediatamente qualquer valor da função.
Exemplo 2
Crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele -
(defun myfunc (num)
(return-from myfunc 10)
num
)
(write (myfunc 20))
Quando você executa o código, ele retorna o seguinte resultado -
10
Mude um pouco o código -
(defun myfunc (num)
(return-from myfunc 10)
write num
)
(write (myfunc 20))
Ainda retorna -
10