Определить, сколько его элементов отличны от последнего - Lisp
Формулировка задачи:
1. Дан список. Определить, сколько его элементов отличны от последнего.
Решение задачи: «Определить, сколько его элементов отличны от последнего»
textual
Листинг программы
(defun task (lst) (let ((last (car (last lst)))) (length (remove-if (lambda (x) (= x last)) (butlast lst))))) ==> task (task '(1 2 3 1 2 3 2)) ==> 4
Объяснение кода листинга программы
В коде определена функция task
, которая принимает в качестве аргумента список lst
. Внутри функции создается переменная last
, которая содержит последний элемент списка lst
.
Далее, с помощью функции remove-if
и лямбда-функции, из списка lst
удаляются все элементы, равные последнему элементу last
.
Затем, с помощью функции length
определяется количество оставшихся элементов в списке.
Наконец, результат вычислений возвращается из функции.
При вызове функции task
с аргументом '(1 2 3 1 2 3 2)'
будет возвращено число 4
, так как после удаления повторяющихся элементов в списке останется 4 элемента.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д