Suponha que eu tenha
(setq a 1 b 2)
Como posso trocar elegantemente os valores de a
e b
sem usar uma variável temporária?
Embora eu me lembre da operação de troca de exemplos de programação muitos anos atrás, acho que nunca precisei de uma operação de "troca". Então, onde você acha que precisa disso?
—
Stefan
@ Stefan neste momento, estou escrevendo uma função que recebe dois argumentos, e gostaria de garantir que o primeiro argumento seja o menor dos dois.
—
precisa saber é o seguinte
@ PythonNut, bem, você pode vincular o primeiro argumento
—
Mark Karpov
(min a b)
e o segundo (max a b)
. Esta é uma solução. Alguns argumentam que isso requer duas comparações quando uma basta, isso mesmo. Você pode lidar com isso com uma comparação ainda mais funcional, por exemplo, usando a ligação de desestruturação (cl-destructuring-bind (a . b) (if (< a b) (cons a b) (cons b a)) ...)
. Esta é outra maneira.
@ Mark verdade, mas, pelo menos para mim, parece que voa golpeando com granadas de mão.
—
precisa saber é o seguinte
cl-destructuring-bind
é uma ferramenta ridiculamente poderosa para este trabalho.