【发布时间】:2013-07-05 16:32:19
【问题描述】:
我想知道是否可以禁用指定函数的返回值。我正在使用编译器 SBCL。我问这个,因为打印返回值需要一段时间,我什至不需要它。有什么想法吗?
好的,它完成了工作:
(progn
(...)
t)
另外,感谢*print-length*。
【问题讨论】:
标签: common-lisp return-value sbcl
我想知道是否可以禁用指定函数的返回值。我正在使用编译器 SBCL。我问这个,因为打印返回值需要一段时间,我什至不需要它。有什么想法吗?
好的,它完成了工作:
(progn
(...)
t)
另外,感谢*print-length*。
【问题讨论】:
标签: common-lisp return-value sbcl
我发现通过在我的 lisp 启动文件中将 *print-length* 变量设置为相对较低的值来限制打印到我的回复的数据量很有用,如下所示:
(setf *print-length* 20)
这样,我就不用太担心返回大量元素的函数了。
【讨论】:
使用函数values 可以从函数返回零个(或多个)值。
values 返回它的所有参数。因此,以(values) 作为最后一种形式的函数不会返回任何内容,而以(values val1 val2 val3) 结尾的函数将返回三个值。当调用返回多个值的函数时,只有第一个(主返回值)以正常方式可用,而其他的可以使用例如捕获。 multiple-value-bind 有关详细信息,请参阅 Hyperspec 中有关 Return Values 的部分
如果你想限制一个你不能修改的函数的输出,你可以这样调用它:
(progn
(function-returning-much-data)
(values))
【讨论】: