假设我有一个这样的assoc列表:
(setq x '((foo . ((bar . "llama")
(baz . "monkey")))))
我想要的价值bar
。我可以做这个:
(assoc-default 'bar (assoc-default 'foo x))
但是我真正想要的是可以接受多个键的东西,例如
(assoc-multi-key 'foo 'bar x)
这样的东西是否存在,也许在某个地方的包装中?我敢肯定我会写的,但是我觉得我的Google-fu只是失败了,我找不到它。
我还在
—
辣椒粉
setq
示例中发现表单的原始格式令人困惑,因此我对其进行了编辑,以对assoc-list使用通用的点符号。
喔好吧。因此,名单确实有两个层次。问题仍然不清楚-
—
提请2014年
assoc-multi-key
仍未确定。
Drew:的
—
abingham
assoc-multi-key
重点是在assoc列表中查找第一个键。这应该解析为一个新的assoc列表,我们在其中查找下一个键。依此类推。基本上是从嵌套的assoc列表中挖掘值的捷径。
@Malabarba也许您也可以提及
—
YoungFrog 2015年
let-alist
?例如(let-alist '((foo . ((bar . "llama") (baz . "monkey")))) .foo.bar)
将返回"llama"
。我想您let-alist
是在提出问题后写的,但这是问题的精神,非常值得一提的IMO!
assoc-multi-key
。大概它寻找与它的前两个参数都匹配的东西,但是实际上,根据您的说法,这就是所有可能的假设。而且它显然不能接受两个以上的键,因为alist参数(大概是x
)是最后一个,而不是第一个-这表明它通常不太有用。尝试实际指定您要查找的内容。