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) …