公共Lisp中的关联

公共Lisp中的关联,lisp,common-lisp,Lisp,Common Lisp,有以下格式的结构: (setq dist '(((1 1) 1) ((0 2) 3) ((1 2) 1) ((2 3) 3) ((3 5) 4))) 如果我调用 (myf '(0 2)) 你能给我吗 3 或 我不明白为什么这会被称为反向assoc (assoc '(0 2) dist :test #'equal) > ((0 2) 3) 如果您更改测试功能,以便正确测试

有以下格式的结构:

 (setq dist '(((1 1) 1)
              ((0 2) 3)
              ((1 2) 1)
              ((2 3) 3)
              ((3 5) 4)))
如果我调用

(myf '(0 2))
你能给我吗

3


我不明白为什么这会被称为反向assoc

(assoc '(0 2) dist :test #'equal)
> ((0 2) 3)

如果您更改测试功能,以便正确测试用作密钥的列表,则ASSOC看起来工作正常。

顺便说一句,如果您确实需要“反向”ASSOC,即找到CDR匹配的对,则存在RASSOC。
(assoc '(0 2) dist :test #'equal)
> ((0 2) 3)