Написать функцию, возвращающую список частот атомов, входящих в исходный список - 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 выполняется следующие действия:
- Создается новая функция с именем
abracadabra
. - Функция
abracadabra
принимает один аргумент, который является списком атомов. - Функция
abracadabra
возвращает список пар, где каждая пара состоит из названия атома и его частоты в исходном списке. - В каждой паре, название атома берется из исходного списка, а его частота вычисляется с помощью встроенной функции
length
, которая возвращает количество атомов в списке. - Результат работы функции
abracadabra
сохраняется в переменнойhashtable
. - Затем, с помощью встроенной функции
swap
происходит обмен первого элемента в списке пар на последний, а второго элемента на предпоследний. - Далее, с помощью цикла
each
происходит итерация по каждой паре в списке пар и выводится на экран название атома и его частота. В результате выполнения данного кода на экран будет выведен список пар: { { 97 5 } { 98 2 } { 99 1 } { 100 1 } { 114 2 } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д