Q : 속성 목록에서 함수를 매핑하는 관용적 방법은 무엇입니까?
다양한 매핑 함수 ( mapcar
및 패밀리)는 목록과 같은 시퀀스에 함수를 매핑합니다. 속성 목록을 다룰 때 , 즉 목록에 포함 된 각 속성 (첫 번째 속성에서 시작하는 다른 모든 요소)을 매핑하려고 할 때 이러한 기능을 어떻게 사용 합니까? 매핑 기능은 개별 요소가 아닌 요소 쌍으로 목록에 액세스해야 할 것 같습니다.
장난감의 예로, 어떻게 속성 목록을 가져 와서 모든 속성 값을 수집합니까? 연결 목록 인 경우에는 매우 간단합니다.
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
나는 이것이 루프로 이루어질 수 있다고 확신하지만 조금 힘들어 보이고 그것을 수행하는 더 관용적 인 방법이 있는지 궁금합니다.
mapcar
alist 예제가 수행하는 것) 만 매핑할지 또는 속성 기호와 속성 값 쌍 을 매핑 할지를 명시하십시오 . 후자는 더 일반적이며 (보다 일반적으로 유용합니다) 추측합니다.