Подсчет атомов во всем списке - Lisp

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

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

Добрый вечер, помогите пожалуйста решить задачу, кому не будет в тягость.
Определить функцию, которая считает количество атомов во всем списке (с учетом подсписков).

Решение задачи: «Подсчет атомов во всем списке»

textual
Листинг программы
(defun task (lst) ;; все атомы
  (length (flatten lst)))
 
(defun task (lst) ;; только уникальные
  (length (setof (flatten lst))))

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

В коде представлены две функции, которые выполняют подсчёт атомов в списке.

  1. (defun task (lst) (length (flatten lst))) — Аргумент функции lst — список. — Функция flatten превращает список в одномерный массив. — Функция length подсчитывает количество элементов в списке (в данном случае в массиве). — Результат выполнения функции — количество атомов в списке.
  2. (defun task (lst) (length (setof (flatten lst)))) — Аргумент функции lst — список. — Функция flatten превращает список в одномерный массив. — Функция setof создаёт множество из элементов массива. — Функция length подсчитывает количество элементов в списке (в данном случае в массиве). — Результат выполнения функции — количество уникальных атомов в списке.

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


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

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

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