LISP - Funzioni di restituzione dei valori

Per impostazione predefinita, una funzione in LISP restituisce il valore dell'ultima espressione valutata come valore di ritorno. Il seguente esempio lo dimostrerebbe.

Esempio 1

Crea un nuovo file di codice sorgente denominato main.lisp e digita il codice seguente.

(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 esegui il codice, restituisce il seguente risultato:

100
125.0

Tuttavia, puoi utilizzare l'estensione return-from operatore speciale per restituire immediatamente qualsiasi valore dalla funzione.

Esempio 2

Crea un nuovo file di codice sorgente denominato main.lisp e digita il seguente codice in esso -

(defun myfunc (num)
   (return-from myfunc 10)
   num
)
(write (myfunc 20))

Quando esegui il codice, restituisce il seguente risultato:

10

Cambia un po 'il codice -

(defun myfunc (num)
   (return-from myfunc 10)
   write num
)
(write (myfunc 20))

Ritorna ancora -

10