Supposons que j'ai
(setq a 1 b 2)
Comment permuter élégamment les valeurs de a
et b
sans utiliser de variable temporaire?
(min a b)
et le second à (max a b)
. Ceci est une solution. Certains diront que cela nécessite deux comparaisons lorsque l'une suffit, c'est vrai. Vous pouvez le gérer avec une seule comparaison de manière plus fonctionnelle, par exemple en utilisant la liaison de déstructuration (cl-destructuring-bind (a . b) (if (< a b) (cons a b) (cons b a)) ...)
. C’est une autre façon.
cl-destructuring-bind
est un outil ridiculement puissant pour ce travail.