Описать на языке Лисп функцию f(x y z) от трёх аргументов - Lisp

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

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

Описать на языке Лисп функцию f(x y z) от трёх аргументов, которая формирует из своих аргументов список. Далее нужно проверить, является ли первый элемент подсписком, и найти его длину. Если первый элемент  подсписок, то вернуть исходный список при условии, что длина подсписка меньше либо равна 2, иначе вернуть подсписок без последнего элемента. Иначе вернуть исходный список без первого элемента.

Решение задачи: «Описать на языке Лисп функцию f(x y z) от трёх аргументов»

textual
Листинг программы
  1. (defun process (a b c)
  2.   (if (listp a)
  3.       (if (<= (length a) 2)
  4.           (list a b c)
  5.           (butlast a))
  6.       (list b c)))
  7.  
  8. > (process 1 2 3)
  9. (2 3)
  10. > (process '(1 1) 2 3)
  11. ((1 1) 2 3)
  12. > (process '(1) 2 3)
  13. ((1) 2 3)
  14. > (process '(a b c) 2 3)
  15. (A B)

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

В коде определена функция process со следующими тремя аргументами a, b, c. Если a является списком, то выполняется следующая проверка: если длина списка a не превышает 2, то возвращается список a, b, c. В противном случае выполняется операция butlast a, которая удаляет последний элемент из списка a. Затем выполняется рекурсивный вызов функции process с аргументами b и c. Если a не является списком, то выполняется вызов функции process с аргументами b и c.

  1. Вызов функции process(1 2 3) вернет список (2 3).
  2. Вызов функции process('(1 1) 2 3) вернет список ((1 1) 2 3).
  3. Вызов функции process('(1) 2 3) вернет список ((1) 2 3).
  4. Вызов функции process('(a b c) 2 3) вернет список (A B).

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


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

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

8   голосов , оценка 4.375 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы