私が持っていると仮定します
(setq a 1 b 2)
どのように私はエレガントの値入れ替えることができますa
し、b
一時的な変数を使用せずに?
私は何年も前のプログラミング例からのスワップ操作を覚えていますが、そのような「スワップ」操作が必要だとは思いません。それで、あなたはどこでそのようなものが必要だと思いますか?
—
ステファン
今回、@ Stefanは、2つの引数を取る関数を作成しています。最初の引数が2つのうち小さい方であることを確認したいと思います。
—
PythonNut
@ PythonNut、1番目の引数をにバインドし
—
マークカルポフ
(min a b)
、2番目の引数をにバインドできます(max a b)
。これは1つの解決策です。1人で十分な場合、2回の比較が必要であると主張する人もいるでしょう。たとえば、バインドを破壊するなど、より機能的な方法で1回の比較で処理でき(cl-destructuring-bind (a . b) (if (< a b) (cons a b) (cons b a)) ...)
ます。これは別の方法です。
@Mark true。しかし、少なくとも私には、手rena弾でハエをたたくように感じます。
—
PythonNut
cl-destructuring-bind
この仕事のための途方もなく強力なツールです。