Запишите следующий лямбда-вызов с использованием формы LET: - Lisp

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста,начали лисп учить недавно, смотрю как бык новые ворота,с похожим справился, а вот этот вызов как расписать с лэтом не пойму вообще... пытаюсь по аналогии с предыдущим но лисп выдает ошибку a) ((LAMBDA (x y) (LIST x y) ‘(+ 1 2) ‘c); моя попытка:
(let ((c 2))((LAMBDA(x y) (list (x y)))(+ 1 2) c))

Решение задачи: «Запишите следующий лямбда-вызов с использованием формы LET:»

textual
Листинг программы
 ((LAMBDA (x y) (LIST x y) '(+ 1 2) 'c)

Объяснение кода листинга программы

Код представлен в виде списка с двумя элементами. Первый элемент - это лямбда-вызов, который принимает два аргумента x и y. Внутри лямбда-вызова происходит создание нового списка, содержащего значения аргументов x и y. Второй элемент - это список '(+ 1 2), который является аргументом для лямбда-вызова. Внутри лямбда-вызова этот список будет распакован в аргументы x и y. Третий элемент - это строка 'c, которая также является аргументом для лямбда-вызова. В итоге, код будет выполняться следующим образом:

  1. Создается лямбда-вызов с двумя аргументами.
  2. Аргументом для лямбда-вызова становится список '(+ 1 2).
  3. Аргументом для лямбда-вызова становится строка 'c.
  4. Лямбда-вызов возвращает результат выполнения выражения (+ 1 2), который будет сохранен в переменную c.
  5. Результат выполнения лямбда-вызова будет выведен на экран.

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы