0
にリストのリストを並べ替え:は、私は、このフォームのリストのリストを持っているlispの
testlist((a 22) (b 2) (c 5))
私の目標は、数字の価値観(5つの最初の最大値)に基づいてtestlistというをソートすることです。リストを反復したり、数値を比較したりすることなく、これを達成する方法はありますか? ANSI Common Lispでは
にリストのリストを並べ替え:は、私は、このフォームのリストのリストを持っているlispの
testlist((a 22) (b 2) (c 5))
私の目標は、数字の価値観(5つの最初の最大値)に基づいてtestlistというをソートすることです。リストを反復したり、数値を比較したりすることなく、これを達成する方法はありますか? ANSI Common Lispでは
:sort
は入力リストを切り詰めているため
(sort (copy-list '((a 22) (b 2) (c 5))) #'< :key #'second)
-> ((B 2) (C 5) (A 22))
copy-list
があります。入力リストはリテラルなので必要ですが、そうでない場合でもソートする元のオブジェクトをスクランブルしたくないことがあります。