次のような連想リストがあるとします。
(setq x '((foo . ((bar . "llama")
(baz . "monkey")))))
そして、私はの値を求めていますbar
。私がすることができます:
(assoc-default 'bar (assoc-default 'foo x))
しかし、私が本当に欲しいのは、次のような複数のキーを受け入れるものです
(assoc-multi-key 'foo 'bar x)
そのようなものが、おそらくどこかのパッケージに存在していますか?きっと書けると思いますが、グーグルフーが失敗して、見つけられない気がします。
setq
例のフォームの元のフォーマットもわかりにくいので、assoc-listに共通のドット表記を使用するように編集しました。
あ、そう。したがって、連想リストには2つのレベルがあります。質問はまだ不明確です-
—
ドリュー、
assoc-multi-key
不特定のままです。
ドリュー:ポイントは
—
アビンガム2014年
assoc-multi-key
連想リストの最初のキーを調べることです。これは、次のキーを検索する新しいassoc-listに解決されるはずです。などなど。基本的には、ネストされたassoc-listから値を掘り下げるための省略形です。
@Malabarbaおそらくあなたも言及
—
YoungFrog 2015
let-alist
できますか?例:(let-alist '((foo . ((bar . "llama") (baz . "monkey")))) .foo.bar)
戻り"llama"
ます。let-alist
質問された後に書いたと思いますが、それは質問の精神に基づいており、IMOに言及する価値は非常にあります。
assoc-multi-key
。おそらく、最初の2つの引数の両方に一致するものを探しますが、あなたが言ったことから、それは実際にそれがすべて推測できることのすべてです。そして、alist引数(おそらくx
)は最初の引数ではなく最後の引数であるため、明らかに3つ以上のキーを受け入れることはできません。これは、一般的にあまり役に立たないことを示唆しています。実際に探しているものを指定してみてください。