lisp - 如何忽略 Common Lisp 中的返回值

标签 lisp common-lisp

我正在处理一些调用 ADJUST-ARRAY 的代码。我从 Lisp 解释器 (CMUCL) 收到一条警告消息,指出不应忽略 ADJUST-ARRAY 的返回值。

如果我没记错的话,在我正在处理的代码中,ADJUST-ARRAY 修改了它的参数。所以没有必要对返回值做任何事情。在 Common Lisp 中是否有指定的方法来忽略返回值?当然,我可以将返回值赋给某个​​变量,然后忽略该变量。但这感觉很笨拙。

我还可以将返回值分配给 ADJUST-ARRAY 参数,例如:

(setq my-array (adjust-array my-array ...))

但这似乎表明我不确定 ADJUST-ARRAY 是否会就地修改 MY-ARRAY。

欢迎任何建议,在此先感谢。

最佳答案

你是对的。作为the documentation状态:

The result is an array of the same type and rank as array, that is either the modified array, or a newly created array to which array can be displaced, and that has the given new-dimensions.

如果结果是新创建的数组,那么函数当然会对参数没有影响

Common Lisp 几乎总是要求您使用返回值而不是旧的绑定(bind),以便拥有可移植的代码。

关于lisp - 如何忽略 Common Lisp 中的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48896161/

相关文章:

lisp - 使用lisp添加两个列表

common-lisp - 为什么 Common Lisp 函数在封闭的 let 之外可见?

loops - 理解循环宏扩展

lisp - 普通口齿不清, "defined but never used"

windows - 在 Common Lisp 中创建隐藏文件

clojure - 有没有一种方法可以像 Clojure 中那样在 Common Lisp 中使用关键字作为函数?

tree - 这真的是广度优先搜索吗

clojure:在 "if"中删除重复的惯用方法?

scheme - Scheme中的平等

emacs - 睡在 emacs lisp 中