lisp lambda函数

时间:2011-04-11 22:58:04

标签: lisp common-lisp

 (repeat-transformation #'(lambda (x) (* 2 x)) 4 1)

这是一个LISP lambda函数,我不明白最后的“1”是什么? 感谢。

3 个答案:

答案 0 :(得分:5)

定义:重复变换(F N X)

在对象X上重复应用函数F N次。

您正在定义要在整数1上通过重复变换调用4次的lambda函数。

希望能够解释它。

答案 1 :(得分:2)

Google带来了repeat-transformation的递归定义:

(defun repeat-transformation (F N X)
  "Repeat applying function F on object X for N times."
  (if (zerop N)
      X
    (repeat-transformation F (1- N) (funcall F X))))

表示1是函数运行的值。接下来的3个谷歌链接确认了它。

答案 2 :(得分:0)

lambda函数是重复转换的第一个参数。 4和1分别是第二和第三个参数。

Lisp教程Advanced Functional Programming in LISP定义了一个重复转换函数,重复在对象X上应用函数F N次。如果你的是等价的,那么 1是对值4应用lambda函数的次数。