P: qual é a maneira idiomática de mapear uma função em uma lista de propriedades?
As várias funções de mapeamento ( mapcar
e família) mapeiam uma função em uma sequência, como uma lista. Como alguém usa essas funções ao lidar com uma lista de propriedades , ou seja, ao tentar mapear cada uma das propriedades contidas na lista (que seriam todos os outros elementos a partir da primeira)? Parece-me que a função de mapeamento precisaria acessar a lista em pares de elementos, e não como elementos individuais.
Como um exemplo de brinquedo, como alguém pegaria uma lista de propriedades e coletaria todos os valores de propriedades? Se fosse uma lista de associações, seria bem simples:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
Tenho certeza que isso pode ser feito com um loop, mas parece um pouco trabalhoso e estou me perguntando se há uma maneira mais idiomática de fazer isso.
mapcar
exemplo atual) ou se deseja mapear os pares de símbolo e valor da propriedade. O último é mais geral (mais útil em geral), eu acho.