คำถามติดแท็ก association-lists

5
จะเปลี่ยนองค์ประกอบของอลิสได้อย่างไร?
ฉันมีสิ่งนี้เป็นค่าเริ่มต้นในauto-mode-alist: ("\\.js\\'" . javascript-mode) (ถึงกับemacs -Q) ฉันต้องการที่จะทดแทนสำหรับjs2-mode javascript-modeแน่นอนฉันสามารถใช้assq-delete-allแล้วadd-to-listอีกครั้ง แต่ฉันสงสัยว่าไม่มีวิธีที่ดีกว่า แก้ไข: ฉันไม่ต้องการใช้ปรับแต่งอย่างชัดเจนฉันชอบการสร้างงานinit.elเอง

1
รายการ '(a. b) เป็นจริงหรือไม่
ฉันสับสนกับ.สัญกรณ์จริงๆ คือ'(a . b)รายการ? (listp '(a . b))ผลตอบแทนที่ได้tแต่เมื่อฉันต้องการที่จะทราบความยาวของมันให้ข้อผิดพลาด(length '(a . b)) Wrong type argument: listp, bเช่นเดียวกับฟังก์ชั่นอื่น ๆ เช่นnth,mapcarอื่น ๆ พวกเขาทั้งหมดให้ข้อผิดพลาดเดียวกัน มีฟังก์ชั่นใดบ้างที่ฉันสามารถแยกความแตกต่างระหว่าง'(a b)และ'(a . b)? บริบท:ผมพบปัญหานี้เมื่อฉันต้องการที่จะใช้รุ่น recursive mapcarของ นี่คือการดำเนินการของฉัน (defun true-listp (object) "Return non-`nil' if OBJECT is a true list." (and (listp object) (null (cdr (last object))))) (defun recursive-mapcar (func list) …

3
วิธีที่ดีที่สุดในการเรียกคืนค่าในรายการ assoc-ซ้อนกัน?
สมมติว่าฉันได้รับรายการรองแบบนี้: (setq x '((foo . ((bar . "llama") (baz . "monkey"))))) barและฉันต้องการให้ค่าที่ ฉันสามารถทำสิ่งนี้: (assoc-default 'bar (assoc-default 'foo x)) แต่สิ่งที่ฉันชอบจริงๆคือสิ่งที่ยอมรับได้หลายปุ่มเช่น (assoc-multi-key 'foo 'bar x) สิ่งนั้นมีอยู่จริงหรือเปล่า ฉันแน่ใจว่าฉันสามารถเขียนได้ แต่ฉันรู้สึกว่า Google-fu ของฉันเพิ่งจะล้มเหลวและฉันไม่พบมัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.