Supponiamo di averlo fatto
(setq a 1 b 2)
Come posso scambiare elegantemente i valori di a
e b
senza usare una variabile temporanea?
(min a b)
secondo (max a b)
. Questa è una soluzione. Alcuni sosterranno che ciò richiede due confronti quando uno è sufficiente, giusto. Puoi gestirlo con un confronto in modo ancora più funzionale, ad esempio utilizzando il binding destrutturante (cl-destructuring-bind (a . b) (if (< a b) (cons a b) (cons b a)) ...)
. Questo è un altro modo.
cl-destructuring-bind
è uno strumento ridicolmente potente per questo lavoro.