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