小编shy*_*nur的帖子

返回另一个函数调用返回的多个值

Peter Seibel在《实用 Common Lisp》中写道:

返回多个值的机制与实现相关,就像将参数传递给函数的机制一样。几乎所有返回某个子表单值的语言结构都会“传递”多个值,返回子表单返回的所有值。因此,返回调用 VALUES 或 VALUES-LIST 结果的函数本身将返回多个值,而其结果来自调用第一个函数的另一个函数也会返回多个值。等等。

依赖于实现确实让我担心。我的理解是以下代码可能只返回主要值:

> (defun f ()
    (values 'a 'b))

> (defun g ()
    (f))

> (g) ; ==> a ? or a b ?
Run Code Online (Sandbox Code Playgroud)

如果是这样,是否意味着我应该谨慎使用此功能?

任何帮助表示赞赏。

function common-lisp multiple-value

1
推荐指数
2
解决办法
155
查看次数

Common Lisp 中的“sxhash”是如何得名的?

或者, \xe2\x80\x9c sx \xe2\x80\x9d 代表什么?

\n
\n

看看我在这里提到的:SXHASH

\n

terminology common-lisp language-history

0
推荐指数
1
解决办法
129
查看次数