Сигурен съм, че това е въпрос за много начинаещи в lisp, тъй като тепърва уча езика.
Имам функция в clisp, наречена count. Той отчита колко пъти даден атом се появява в списък. Това, което бих искал да направя, е да мога да извиквам count няколко пъти с различни параметри, но един и същ списък за търсене.
Например, бих искал да преброя броя на 'A
, 'B
и 'C
в списъка, хипотетично. Надявах се, че мога да направя нещо подобно:
(mapcar 'count '(A B C) myList)
Разбрах, че това не работи, защото всеки от елементите в '(A B C)
се свързва само с един от елементите в myList. Какъв е подходящият идиоматичен начин за прилагане на функция с допълнителен входен параметър към всеки елемент в списък?
За по-нататъшно изясняване, бих искал да мога да взема '(A B C)
и '(A A B C C C)
като вход и да произведа (2 1 3)
.