S: Bir işlevi bir özellik listesinde eşlemenin deyimsel yolu nedir?
Çeşitli eşleme işlevleri ( mapcar
ve ailesi), bir işlevi liste gibi bir dizi üzerinde eşler. Bir özellik listesi ile uğraşırken , yani listede yer alan özelliklerin her birini eşleştirmeye çalışırken (birincisinden başlayarak diğer tüm öğeler olur) bu işlevleri nasıl kullanır ? Bana öyle geliyor ki, haritalama fonksiyonu listeye tek tek elemanlar yerine elemanlar halinde erişmesi gerekecek.
Oyuncak örneği olarak, bir özellik listesi nasıl alınır ve tüm özellik değerleri toplanır? Bir ilişkilendirme listesi olsaydı, oldukça basit olurdu:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
Bu bir döngü ile yapılabilir eminim, ama biraz zahmetli görünüyor ve bunu yapmak için daha deyimsel bir yol olup olmadığını merak ediyorum.
mapcar
alist örneğinizin yaptığı şey) veya özellik sembolü ve özellik değeri çiftleri üzerinden eşleştirmek istediğinizi açıklayın . İkincisi daha genel (daha genel olarak yararlı), sanırım.