function - Common Lisp 函数没有返回值

标签 function lisp common-lisp return-value

我读到 Common Lisp 中的每个表单在计算时都会返回一些东西。然而,最近我一直在玩 ASDF API 并发现了一个不返回任何内容的函数:

CL-USER> (asdf:clear-output-translations)
; No value

这怎么可能,为什么它不返回像 NIL 这样的东西?

最佳答案

Common Lisp 允许函数从 0 返回到 MULTIPLE-VALUES-LIMIT值。常量 MULTIPLE-VALUES-LIMIT20 或更大。

函数VALUES允许返回 multiple values ,包括零值。

因此,当一个函数没有有用的返回值并且只是为了副作用而调用时,一个常见的习惯用法是使用 (values) 的形式。此外,这通常会导致 Lisp 监听器(又名 REPL)不打印任何内容作为返回值,这对于审美原因很有用。

请注意,变量只有一个值,并且只能将一个值绑定(bind)到一个变量。

关于function - Common Lisp 函数没有返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322367/

相关文章:

lisp - 如何从 lisp 中的字符串列表创建递归嵌套的列表

python - 普通口齿不清 : Launch subprocess with different working directory than lisp process

generics - 专门针对关键字的泛型函数

function - 如何测试在 main() 函数中调用了特定方法

c++ - 从 'int'类型的返回值到函数返回类型( vector )没有可行的转换

lisp - Scheme 中的归并排序

loops - Racket expt 是否使用尾递归?

tree - 在 lisp 中转换树

php - codeigniter/php 应用程序中错误处理的最佳实践

sql-server - SQL Server 函数的返回值