다음과 같은 연관 목록이 있다고 가정하십시오.
(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-lists에 공통 점 표기법을 사용하도록 편집했습니다.
그래. 따라서 목록에는 두 가지 수준이 있습니다. 질문은 여전히 불분명합니다-
—
Drew
assoc-multi-key
지정되지 않은 채 남아 있습니다.
Drew : 요점은
—
abingham 5
assoc-multi-key
assoc-list에서 첫 번째 키를 찾는 것입니다. 이것은 다음 키를 찾는 새로운 assoc-list로 해결되어야합니다. 기타 등등. 기본적으로 중첩 된 연관 목록에서 값을 파기위한 약칭.
@Malabarba 아마도 당신도 언급 할 수
—
YoungFrog
let-alist
있습니까? 예 (let-alist '((foo . ((bar . "llama") (baz . "monkey")))) .foo.bar)
를 들어을 반환 "llama"
합니다. let-alist
질문을 한 후에 쓴 것 같지만 질문의 정신에 있으며 IMO를 언급 할 가치가 있습니다!
assoc-multi-key
. 아마도 첫 번째 두 가지 주장과 모두 일치하는 것으로 보이지만 실제로는 당신이 말한 것으로 추측 할 수있는 모든 것입니다. 그리고 alist 인수 (아마도x
)가 첫 번째 키가 아닌 마지막 키이기 때문에 두 개 이상의 키를 명확하게 받아 들일 수 없습니다 . 일반적으로 너무 유용하지 않다는 것을 암시합니다. 실제로 원하는 것을 지정 하십시오 .