Załóżmy, że mam
(setq a 1 b 2)
Jak mogę elegancko zamienić wartości a
i b
bez użycia zmiennej tymczasowej?
(min a b)
drugim (max a b)
. To jest jedno rozwiązanie. Niektórzy twierdzą, że wymaga to dwóch porównań, gdy jedno wystarczy, to prawda. Możesz sobie z tym poradzić za pomocą jednego porównania w bardziej funkcjonalny sposób, na przykład używając wiązania restrukturyzacji (cl-destructuring-bind (a . b) (if (< a b) (cons a b) (cons b a)) ...)
. To jest inny sposób.
cl-destructuring-bind
jest absurdalnie potężnym narzędziem do tego zadania.