Angenommen, ich habe
(setq a 1 b 2)
Wie kann ich die Werte von a
und b
ohne Verwendung einer temporären Variablen elegant austauschen ?
(min a b)
und das zweite an binden (max a b)
. Dies ist eine Lösung. Einige werden argumentieren, dass dies zwei Vergleiche erfordert, wenn einer ausreicht, das ist richtig. Sie können mit einem Vergleich noch funktionaler umgehen, zum Beispiel mit destrukturierendem Binden (cl-destructuring-bind (a . b) (if (< a b) (cons a b) (cons b a)) ...)
. Das ist ein anderer Weg.
cl-destructuring-bind
ist ein lächerlich mächtiges Werkzeug für diesen Job.