Написать функцию, возвращающую список частот атомов, входящих в исходный список - Lisp

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

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

Ребят, и еще одна задачка на написание функции. Написать функцию, возвращающую для заданного списка lst список вида ((атом1 <число вхождений в список lst>) (атом2 <число вхождений в список lst>)...) Спасибо вам большое

Решение задачи: «Написать функцию, возвращающую список частот атомов, входящих в исходный список»

textual
Листинг программы
"abracadabra" dup length <hashtable> swap [ over inc-at ] each
 
H{ { 97 5 } { 98 2 } { 99 1 } { 100 1 } { 114 2 } }

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

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

  1. Создается новая функция с именем abracadabra.
  2. Функция abracadabra принимает один аргумент, который является списком атомов.
  3. Функция abracadabra возвращает список пар, где каждая пара состоит из названия атома и его частоты в исходном списке.
  4. В каждой паре, название атома берется из исходного списка, а его частота вычисляется с помощью встроенной функции length, которая возвращает количество атомов в списке.
  5. Результат работы функции abracadabra сохраняется в переменной hashtable.
  6. Затем, с помощью встроенной функции swap происходит обмен первого элемента в списке пар на последний, а второго элемента на предпоследний.
  7. Далее, с помощью цикла each происходит итерация по каждой паре в списке пар и выводится на экран название атома и его частота. В результате выполнения данного кода на экран будет выведен список пар: { { 97 5 } { 98 2 } { 99 1 } { 100 1 } { 114 2 } }

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


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

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

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