lisp lambda函数

lisp lambda函数,lisp,common-lisp,Lisp,Common Lisp,这是一个LISP lambda函数,我不明白最后一个“1”是什么? 谢谢。定义:重复转换(fnx) 在对象X上重复应用函数F N次 您正在定义lambda函数,通过对整数1重复转换4次来调用它 希望能解释这一点。谷歌为重复转换返回了一个递归定义: (repeat-transformation #'(lambda (x) (* 2 x)) 4 1) 这表明1是功能操作的值。接下来的3个谷歌链接证实了这一点。lambda函数是重复转换的第一个参数。4和1分别是第二个和第三个参数 Lisp教程定义

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

定义:重复转换(fnx)

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

您正在定义lambda函数,通过对整数1重复转换4次来调用它


希望能解释这一点。

谷歌为
重复转换返回了一个递归定义:

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

这表明
1
是功能操作的值。接下来的3个谷歌链接证实了这一点。

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


Lisp教程定义了一个重复变换函数,该函数在对象X上重复应用函数F N次。如果您的值相等,则
1
是对值
4
应用lambda函数的次数

是的,它在X上重复应用F N次,但是参数的顺序是fnx。很好。它提醒我们要仔细检查函数签名,而不是假设参数的顺序与文档字符串中的顺序相同。它还表明,在记录函数时,保持参数的顺序可能会有所帮助。
(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))))