P: Jaki jest idiomatyczny sposób mapowania funkcji na liście właściwości?
Różne funkcje mapowania ( mapcar
i rodzina) mapują funkcję na sekwencji, takiej jak lista. W jaki sposób korzysta się z tych funkcji, gdy ma się do czynienia z listą właściwości , tj. Przy próbie mapowania każdej z właściwości zawartych na liście (którym byłby każdy inny element, zaczynając od pierwszego)? Wydaje mi się, że funkcja mapowania musiałaby uzyskać dostęp do listy w parach elementów, a nie jako pojedynczych elementów.
Jako zabawkowy przykład, w jaki sposób wziąć listę właściwości i zebrać wszystkie wartości właściwości? Gdyby to była lista skojarzeń, byłoby to dość proste:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
Jestem pewien, że można to zrobić za pomocą pętli, ale wydaje się to trochę pracochłonne i zastanawiam się, czy istnieje bardziej idiomatyczny sposób na zrobienie tego.
mapcar
działa Twój przykład), czy też chcesz odwzorować pary symboli właściwości i wartości właściwości. To drugie jest bardziej ogólne (bardziej ogólnie przydatne), tak sądzę.