我读过Common Lisp中的每个表单在评估时都会返回一些信息。但是,最近我一直在使用ASDF API,发现没有返回任何内容的函数:
CL-USER> (asdf:clear-output-translations)
; No value
这怎么可能,为什么它不返回类似NIL
?
Common Lisp允许函数从0
最多MULTIPLE-VALUES-LIMIT个值返回。常数MULTIPLE-VALUES-LIMIT
是20
或更大。
因此,(values)
当函数没有有用的返回值而只是出于副作用而被调用时,通常的习惯用法是使用该形式。同样,这通常也会导致Lisp侦听器(也称为REPL)不打印任何内容作为返回值,这出于美学原因可能很有用。
请注意,变量只有一个值,并且只能将一个值恰好绑定到变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句