Supponiamo di averlo fatto
(setq a 1 b 2)
Come posso scambiare elegantemente i valori di ae bsenza 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.