P: ¿cuál es la forma idiomática de asignar una función a través de una lista de propiedades?
Las diversas funciones de mapeo ( mapcar
y familia) mapean una función sobre una secuencia como una lista. ¿Cómo se usan estas funciones cuando se trata de una lista de propiedades , es decir, cuando se trata de mapear a través de cada una de las propiedades contenidas en la lista (que sería cualquier otro elemento a partir del primero)? Me parece que la función de mapeo necesitaría acceder a la lista en pares de elementos en lugar de como elementos individuales.
Como ejemplo de juguete, ¿cómo se tomaría una lista de propiedades y se recopilarían todos los valores de las propiedades? Si fuera una lista de asociación, sería bastante simple:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
Estoy seguro de que esto podría hacerse con un bucle, pero parece un poco laborioso y me pregunto si hay una forma más idiomática de hacerlo.
mapcar
ejemplo de lista) o si desea asignar sobre los pares de símbolo de propiedad y valor de propiedad. Este último es más general (más útil en general), supongo.