Решение S-выражений - Lisp

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

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

Ребят кто разбирается в этом хорошо помогите немогу понять как зделать.

Под именем w ввести список (4 5 6 7 8 9). Потом ввести S-выражение, которое слаживало бы програму сумирования членов этого списка (виключая первый и последний члены) и сразу же немедленно выполнял эту програму.

Ребят кто разбирается в этом помогите немогу понять как зделать я в Лиспе 0.

Под именем w ввести список (4 5 6 7 8 9). Потом ввести S-выражение, которое слаживало бы програму сумирования членов этого списка (виключая первый и последний члены) и сразу же немедленно выполнял эту програму.

Я вот пытаюсь зделать но оно нехочет работать(
(setq w '(4 5 6 7 8 9))
(cadr(w)=5)
(caddr(w)=6)
(cadddr(w)=7)
(caddddr(w)=8)
(plus(plus(cadr(w)(caddr(w))(plus(cadddr(w))(caddddr(w)))

Решение задачи: «Решение S-выражений»

textual
Листинг программы
* (let ((w '(4 5 6 7 8 9))) (reduce #'+ (cdr (butlast w))))
26

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

В данном коде на языке Lisp выполняется следующие действия:

  1. Создается переменная w со значением (4 5 6 7 8 9).
  2. Используется функция reduce с аргументом #'+ (оператор сложения) для вычисления суммы всех элементов в списке, который получается после удаления последнего элемента изwс помощью функцииbutlast`.
  3. Результатом выполнения кода будет число 26, которое является суммой всех элементов списка (4 5 6 7 8 9).

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


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

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

14   голосов , оценка 4.071 из 5