「Vl-sort-i」の版間の差分
 (ページの作成: ; 構文 : (vl-sort-i ''list'' ''comparison-function'')    ; 機能 : 指定された比較関数にしたがってリスト内の要素をソートし、要素のインデック…)  | 
				編集の要約なし  | 
				||
| (同じ利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
{{AutoLISP}}  | |||
; 構文  | ; 構文  | ||
: (vl-sort-i ''list'' ''comparison-function'')    | : (vl-sort-i ''list'' ''comparison-function'')    | ||
| 5行目: | 6行目: | ||
; 機能  | ; 機能  | ||
: 指定された比較関数にしたがってリスト内の要素をソートし、要素のインデックス番号を返す。  | : 指定された比較関数にしたがってリスト内の要素をソートし、要素のインデックス番号を返す。  | ||
; 引数  | ; 引数  | ||
| 20行目: | 22行目: | ||
; サンプル  | ; サンプル  | ||
: 文字のリストを降順にソート。  | <pre class="brush:autolisp;">  | ||
 ; 文字のリストを降順にソート。  | |||
(vl-sort-i '("a" "d" "f" "c") '>)    | |||
(2 1 3 0)  | |||
;; ソートされたリストの順序は "f" "d" "c" "a" で、"f" は元のリストの第 3 要素(インデックス 2)、"d" はリストの第 2 要素(インデックス 1)、以下のサンプルも同様。  | |||
; ---  | |||
;数値のリストを昇順にソート。  | |||
(vl-sort-i '(3 2 1 3) '<)    | |||
(2 1 3 0) ; 結果のリスト内に「3」が 2 つ存在していることに注意。  | |||
; ---  | |||
; 2D 点のリストを Y 座標でソート。    | |||
 (vl-sort-i '((1 3) (2 2) (3 1))    | |||
  (function (lambda (e1 e2)    | |||
  (< (cadr e1) (cadr e2)) ) ) )    | |||
(2 1 0)  | |||
;---  | |||
;シンボルのリストをソート。  | |||
(vl-sort-i     | |||
  '(a d c b a)    | |||
  '(lambda (s1 s2)    | |||
  (< (vl-symbol-name s1) (vl-symbol-name s2)) ) )    | |||
 (4 0 3 2 1)  ; 結果のリスト内に「a」が 2 つ存在していることに注意。  | |||
</pre>  | |||
-----  | -----  | ||
関連事項  | 関連事項  | ||
*    | * [[vl-sort]]  | ||
* [[vl-sort-i]]  | |||
* [[gz:sortss_xyz]]   | |||
* [[gz:sortss_x]]  | |||
* [[gz:sortss_y]]  | |||
* [[gz:sortss_z]]  | |||
[[Category:AutoLISP]]  | [[Category:AutoLISP]]  | ||
2025年6月22日 (日) 08:53時点における最新版
- 構文
 - (vl-sort-i list comparison-function)
 
- 機能
 - 指定された比較関数にしたがってリスト内の要素をソートし、要素のインデックス番号を返す。
 
- 引数
 - 
- list : 任意のリスト。
 - comparison-function : 比較関数。 これは、2 つの引数を受け入れ、第 1 引数が第 2 引数よりもソート順が前の場合は T(または nil 以外の任意の値)を返すような任意の関数。
 
- comparison-function 引数の値は、次の形式のいずれかが指定可能。
 - シンボル(関数名)
 - '(LAMBDA (A1 A2) ...)
 - (FUNCTION (LAMBDA (A1 A2) ...))
 
 
- 戻り値
 - comparison-function 引数で指定された順序で並べ替えた list の要素のインデックスの値を含んだリスト。 重複した要素は、結果でも保持される。
 
- サンプル
 
 ; 文字のリストを降順にソート。
(vl-sort-i '("a" "d" "f" "c") '>) 
(2 1 3 0)
;; ソートされたリストの順序は "f" "d" "c" "a" で、"f" は元のリストの第 3 要素(インデックス 2)、"d" はリストの第 2 要素(インデックス 1)、以下のサンプルも同様。
; ---
;数値のリストを昇順にソート。
(vl-sort-i '(3 2 1 3) '<) 
(2 1 3 0) ; 結果のリスト内に「3」が 2 つ存在していることに注意。
; ---
; 2D 点のリストを Y 座標でソート。 
 (vl-sort-i '((1 3) (2 2) (3 1)) 
  (function (lambda (e1 e2) 
  (< (cadr e1) (cadr e2)) ) ) ) 
(2 1 0)
;---
;シンボルのリストをソート。
(vl-sort-i  
  '(a d c b a) 
  '(lambda (s1 s2) 
  (< (vl-symbol-name s1) (vl-symbol-name s2)) ) ) 
 (4 0 3 2 1)  ; 結果のリスト内に「a」が 2 つ存在していることに注意。
関連事項