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

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

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

Запишите следующие лямбда-вызовы с использованием формы Prog: a) ((LAMBDA (x y) (LIST x y)‘(+ 1 2) ‘c); b) ((LAMBDA (x y) ((LAMBDA (z) (LIST x y z)) ‘c)‘a ‘b); c) ((LAMBDA (x y) (LIST x y))((LAMBDA (z) z) ‘a)‘b).

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

textual
Листинг программы
;;1)
 
((LAMBDA (x y) (LIST x y)) '(+ 1 2) 'c)
 
==> ((+ 1 2) C)
 
(prog (x y)
   (setq x '(+ 1 2) y 'c)
   (return (list x y))) 
 
==> ((+ 1 2) C)
 
;; 2)
 
((LAMBDA (x y) ((LAMBDA (z) (LIST x y z)) 'c)) 'a 'b)
 
==> (A B C)
 
(prog (x y)
  (setq x 'a y 'b)
  (return (prog (z)
             (setq z 'c)
             (return (list x y z))))) 
 
==> (A B C)
 
;; 3)
 
((LAMBDA (x y) (LIST x y))((LAMBDA (z) z) 'a) 'b)
 
==> (A B)
 
(prog (x y)
  (setq x (prog (z)
             (setq z 'a)
             (return z))
        y 'b)
  (return (list x y)))
 
==> (A B)

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

1) В этом коде используется форма Prog для создания лямбда-вызова, который принимает два аргумента x и y. Внутри Prog происходит присваивание значений переменным x и y, а затем возвращается список с этими значениями. 2) Здесь также используется форма Prog для создания лямбда-вызова, который принимает два аргумента x и y. Внутри Prog происходит присваивание значений переменным x и y, а затем создается новый лямбда-вызов, который принимает один аргумент z и возвращает список с значениями x, y и z. 3) В этом примере используется вложенный лямбда-вызов внутри формы Prog. Внешний лямбда-вызов принимает два аргумента x и y, а внутри него создается новый лямбда-вызов, который принимает один аргумент z и возвращает его значение. Затем это значение присваивается переменной x, а переменная y остается без изменений. После этого возвращается список с значениями x и y.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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