A assoc KEY LIST
função retorna o primeiro elemento de um alist
cujo carro é igual a KEY
.
Existe uma função interna do Emacs Lisp que retorna todos os elementos de alist
cujos carros são iguais a KEY
, como um subalista ou lista de valores? Afinal, não é necessário que um alist
tenha chaves exclusivas.
Isso é,
(assoc foo '((foo . 5) (bar . 6) (foo . 7))) = '(foo . 5)
Mas,
(assoc-all foo '((foo . 5) (bar . 6) (foo . 7))) = '((foo . 5) (foo . 7))
association-lists
Matthew Piziak
fonte
fonte
#'
em vez de apenas'
para dizer ao compilador esta é uma referência de função (obras para ambos'equal
e'car
) ..car
ouequal
não fosse definido, não?#'
é sempre redundante, pois você deve referenciar apenas funções definidas :-). Eu acho que é um bom hábito sempre citar suas referências de função. E, quem sabe, o compilador de bytes poderá um dia usar essas informações para otimizar seu código :-).Outra solução envolvendo
seq-filter
:fonte