0

我想知道是否可以禁用指定函数的返回值。我正在使用编译器 SBCL。我问这个,因为打印返回值需要一段时间,我什至不需要它。有任何想法吗?

好的,它完成了工作:

(progn
  (...)
  t)

另外,谢谢*print-length*

4

2 回答 2

3

*print-length*我发现通过在我的 lisp 启动文件中将变量设置为相对较低的值来限制打印到我的回复的数据量很有用,如下所示:

(setf *print-length* 20)

这样,我就不必太担心返回大量元素的函数。

于 2013-07-05T18:40:20.087 回答
1

使用该函数values,可以从一个函数返回零个(或多个)值。 values返回它的所有参数。因此,具有(values)最后一种形式的函数不会返回任何内容,而以 结尾的函数(values val1 val2 val3)将返回三个值。当调用返回多个值的函数时,只有第一个(主返回值)以正常方式可用,而其他的可以使用例如获取更多详细信息,请参阅 Hyperspec 中的返回值multiple-value-bind部分

如果你想限制一个你不能修改的函数的输出,你可以这样调用它:

(progn
   (function-returning-much-data)
   (values))
于 2013-07-05T17:13:22.247 回答