Common LISP中提供了两个函数对象来调用函数 funcall 与apply
下面的函数是一个画点的函数,使用funcall函数
(defun plot (fn min max step)
(loop for i from min to max by step do
(loop repeat (funcall fn i) do (format t "*"))
(format t "~%")))调用内置的exp函数
CL-USER> (plot #'exp 0 4 0.5)
*
*
**
****
*******
************
********************
*********************************
******************************************************
NIL
绘制函数2x的函数:
(defun double (x) (* 2 x))进行调用:
CL-USER> (plot #'double 0 10 1)
**
****
******
********
**********
************
**************
****************
******************
********************
NIL也可以直接匿名调用
CL-USER> (plot #'(lambda (x) (* 2 x )) 0 10 1)
**
****
******
********
**********
************
**************
****************
******************
********************
NIL
本文介绍了Lisp语言中的funcall和apply函数,并通过实例展示了如何使用这两个函数来调用其他函数,包括使用内置函数exp和自定义函数double。此外,文章还展示了如何直接匿名调用函数。
2469

被折叠的 条评论
为什么被折叠?



