Вопрос: каков идиоматический способ сопоставления функции в списке свойств?
Различные функции отображения ( mapcar
и семейство) отображают функцию на последовательность, такую как список. Как можно использовать эти функции при работе со списком свойств , т. Е. При попытке отобразить каждое из свойств, содержащихся в списке (который будет любым другим элементом, начиная с первого)? Мне кажется, что функция отображения должна была бы получить доступ к списку в парах элементов, а не как отдельные элементы.
Например, как взять список свойств и собрать все значения свойств? Если бы это был список ассоциаций, это было бы довольно просто:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
Я уверен, что это можно сделать с помощью цикла, но это кажется немного трудоемким, и мне интересно, есть ли более идиоматический способ сделать это.
mapcar
пример alist) или вы хотите отобразить пары символов и значений свойств. Последнее, я думаю, является более общим (более полезным).