Q: cách thành ngữ để ánh xạ một chức năng qua danh sách tài sản là gì?
Các hàm ánh xạ khác nhau ( mapcar
và gia đình) ánh xạ một hàm qua một chuỗi như danh sách. Làm thế nào để sử dụng các chức năng này khi giao dịch với một tài sản danh sách, ví dụ, khi cố gắng để lập bản đồ trên mỗi trong những tài sản chứa trong danh sách (đó sẽ là mọi phần tử khác bắt đầu từ cái đầu tiên)? Dường như với tôi rằng chức năng ánh xạ sẽ cần truy cập vào danh sách theo từng cặp phần tử chứ không phải là các phần tử riêng lẻ.
Như một ví dụ về đồ chơi, làm thế nào một người có thể lấy một danh sách tài sản và thu thập tất cả các giá trị tài sản? Nếu đó là một danh sách liên kết thay vào đó, nó sẽ khá đơn giản:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
Tôi chắc chắn rằng điều này có thể được thực hiện với một vòng lặp, nhưng có vẻ hơi tốn công và tôi tự hỏi liệu có cách nào thành ngữ hơn để làm điều đó không.
mapcar
ví dụ tồn tại của bạn làm) hoặc bạn muốn ánh xạ qua các cặp ký hiệu thuộc tính và giá trị thuộc tính. Cái sau nói chung hơn (nói chung là hữu ích hơn), tôi đoán vậy.