本文介绍了您何时使用“应用”什么时候进行“ funcall”?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
通用Lisp HyperSpec 在 funcall
条目中说
(funcall function arg1 arg2 ...)
== (apply function arg1 arg2 ... nil)
== (apply function (list arg1 arg2 ...))
由于它们是等效的,因此何时使用 apply
,以及何时 funcall
?
Since they are somehow equivalent, when would you use apply
, and when funcall
?
推荐答案
您应使用 funcall
如果您有一个或多个单独的参数,而 apply
如果您有参数在列表中
You should use funcall
if you have one or more separate arguments and apply
if you have your arguments in a list
(defun passargs (&rest args) (apply #'myfun args))
或
(defun passargs (a b) (funcall #'myfun a b))
这篇关于您何时使用“应用”什么时候进行“ funcall”?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!