Q: quelle est la manière idiomatique de mapper une fonction sur une liste de propriétés?
Les diverses fonctions de mappage ( mapcar
et famille) mappent une fonction sur une séquence telle qu'une liste. Comment utilise-t-on ces fonctions lorsqu'il s'agit d'une liste de propriétés , c'est-à-dire lorsque l'on essaie de mapper sur chacune des propriétés contenues dans la liste (qui serait tout autre élément à partir du premier)? Il me semble que la fonction de mappage aurait besoin d'accéder à la liste par paires d'éléments plutôt qu'en tant qu'éléments individuels.
À titre d'exemple de jouet, comment prendre une liste de propriétés et collecter toutes les valeurs des propriétés? S'il s'agissait plutôt d'une liste d'associations, ce serait assez simple:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
Je suis sûr que cela pourrait être fait avec une boucle, mais cela semble un peu laborieux et je me demande s'il y a une façon plus idiomatique de le faire.
mapcar
exemple d'alist) ou si vous souhaitez mapper les paires de symbole de propriété et de valeur de propriété. Ce dernier est plus général (plus généralement utile), je suppose.