De forma predeterminada, una función en LISP devuelve el valor de la última expresión evaluada como valor de retorno. El siguiente ejemplo lo demostraría.
Ejemplo 1
Cree un nuevo archivo de código fuente llamado main.lisp y escriba el siguiente código en él.
(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))
Cuando ejecuta el código, devuelve el siguiente resultado:
100
125.0
Sin embargo, puede utilizar el return-from operador especial para devolver inmediatamente cualquier valor de la función.
Ejemplo 2
Cree un nuevo archivo de código fuente llamado main.lisp y escriba el siguiente código en él:
(defun myfunc (num)
(return-from myfunc 10)
num
)
(write (myfunc 20))
Cuando ejecuta el código, devuelve el siguiente resultado:
10
Cambia un poco el código -
(defun myfunc (num)
(return-from myfunc 10)
write num
)
(write (myfunc 20))
Todavía regresa -
10