лямбда-функция lisp - PullRequest
       3

лямбда-функция lisp

2 голосов
/ 12 апреля 2011
 (repeat-transformation #'(lambda (x) (* 2 x)) 4 1)

Это лямбда-функция LISP, я не понимаю, какая последняя "1"? Благодаря.

Ответы [ 3 ]

5 голосов
/ 12 апреля 2011

Определение: повторное преобразование (F N X)

Повторите применение функции F к объекту X для N раз.

Вы определяете свою лямбда-функцию, которая будет вызываться повторным преобразованием 4 раза для целого числа 1.

Надеюсь, что это объясняет.

2 голосов
/ 12 апреля 2011

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 ссылки Google подтверждают это.

0 голосов
/ 12 апреля 2011

Лямбда-функция является первым аргументом для повторения-преобразования. 4 и 1 - второй и третий аргументы соответственно.

Учебник по Лиспу Расширенное функциональное программирование в LISP определяет функцию повторного преобразования, которая повторяет применение функции F к объекту X N раз . Если ваш эквивалент эквивалентен, то 1 - это число раз, когда лямбда-функция применяется к значению 4.

...