Вычислите значения следующих вызовов - Lisp

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

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

Вычислите значения следующих вызовов:
(apply 'list '(a b))
(funcall 'list '(a b))
(funcall 'apply 'list '(a b))
(funcall 'list 'apply '(a b))
(funcall 'funcall 'funcall 'list 'list '(a b))

Решение задачи: «Вычислите значения следующих вызовов»

textual
Листинг программы
(apply 'list '(a b))
 
==> (a b)
 
(funcall 'list '(a b))
 
==> ((a b))
 
(funcall 'apply 'list '(a b))
 
==> (a b)
 
(funcall 'list 'apply '(a b))
 
==> (APPLY (a b))
 
(funcall 'funcall 'funcall 'list 'list '(a b))
 
==> (LIST (a b))

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

В коде идет проверка работы трех функций: apply, funcall и list.

  1. apply - принимает три аргумента: функцию, список аргументов и список функций. Функция принимает список аргументов и возвращает результат выполнения функции с этими аргументами. В данном случае передается функция list и список (a b), поэтому результатом будет (a b).
  2. funcall - принимает два аргумента: функцию и список аргументов. Функция принимает список аргументов и возвращает результат выполнения функции с этими аргументами. В данном случае передается функция list и список (a b), поэтому результатом будет ((a b)).
  3. funcall - принимает три аргумента: функцию, список аргументов и список функций. Функция принимает список аргументов и список функций и возвращает результат выполнения функции с этими аргументами. В данном случае передается функция apply и список (list (a b)), поэтому результатом будет (a b).
  4. funcall - принимает три аргумента: функцию, список аргументов и список функций. Функция принимает список аргументов и список функций и возвращает результат выполнения функции с этими аргументами. В данном случае передается функция list и список funcall (list (a b)), поэтому результатом будет (LIST (APPLY (a b))).

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


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

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

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