vl-every (AutoLISP)

すべての要素の組み合わせに対してテスト結果が真かどうかをチェックします。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(vl-every predicate-function list [list ...])
predicate-function

タイプ: サブルーチンまたはシンボル

テスト関数。vl-every 関数に提供されるリストと同じ数の引数を受け入れ、ユーザが指定した任意の条件で T を返す任意の関数を指定できます。predicate-function 引数の値は、次の形式のいずれかが指定可能です。

  • シンボル(関数名)
  • '(LAMBDA (A1 A2) ...)
  • (FUNCTION (LAMBDA (A1 A2) ...))
list

タイプ: リスト

テストするリスト。

戻り値

タイプ: T または nil

predicate-function が、すべての要素の組み合わせに対して nil 以外の値を返した場合は T。それ以外の場合は nil

注意

vl-every 関数は、引数として指定された各リストの最初の要素をテスト関数に渡し、次に各リストの次の要素を渡すというように、各リストの要素を順にテスト関数に渡します。リストの 1 つが終了すると、評価が終了します。

現在のフォルダに空のファイルが存在するかどうかをチェックします。

(vl-every
'(lambda (fnm) (> (vl-file-size fnm) 0))
   (vl-directory-files nil nil 1))
T

nlst 内の数値のリストが '<= によって整列されているかどうかをチェックします。

(setq nlst (list 0 2 pi pi 4))
(0 2 3.14159 3.14159 4)

(vl-every '<= nlst (cdr nlst))
T

次の式の結果と比較してください。

(vl-every '= '(1 2) '(1 3))
nil

(vl-every '= '(1 2) '(1 2 3))
T

最初の式が nil を返すのは、vl-every 関数が各リストの第 2 要素を比較し、それらが数値的に等しくないからです。2 番目の式が T を返すのは、短い方のリスト(1 2)のすべての要素を処理した後、vl-every 関数は要素の比較を中止しますが、その時点でリストが数値的に等しいからです。リストの終端に達すると、vl-every 関数は nil 以外の値を返します。

次の例は、一方が整数を含み、他方が nil であるリストを vl-every 関数が評価したときの結果を示しています。

(setq alist (list 1 2 3 4))
(1 2 3 4)

(setq junk nil)
nil

(vl-every '= junk alist)
T

戻り値が T となるのは、vl-every 関数が nil リストに対して、リストの終端に達したのと同じように応答するからです(たとえテストに要素がまったく割り当てられていなくても)。上の場合も、リストの終端に達したことになり、vl-every 関数は nil 以外の値を返します。