无涯教程-LISP - Returning Values from a Function函数

45 阅读1分钟


默认情况下,LISP中的函数返回最后一个表达式的值作为返回值。下面的示例将演示这一点。

示例1

创建一个名为main.lisp的新源代码文件,并在其中键入以下代码。

(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))

当您执行代码时,它返回以下结果−

100
125.0

但是,您可以使用return-from特殊运算符立即从函数返回任何值。

示例2

创建一个名为main.lisp的新源代码文件,并在其中键入以下代码−

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

当您执行代码时,它返回以下结果−

10

稍微修改一下代码−

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

它仍然返回−

10

参考链接

www.learnfk.com/lisp/lisp-r…