npt-japanese

% Function FIND-RESTART

UP


Function FIND-RESTART

Function FIND-RESTART

構文

find-restart identifier &optional condition
=> restart

引数と戻り値

identifier - nilではなシンボルか、restart
condition - コンディションオブジェクトか、nil
restart - restartか、nil

定義

find-restartは、現在の動的環境下で特定のrestartを探します。

もしconditionnilではないときは、 それらのrestartは、明にconditionと関連付けられているものか、 あるいはどのコンディションにも関連付けられてないものかの どちらかのみが集められます。 これは、排他されたrestartというのは、 関連付けられたコンディションの集合が空ではなく、 その要素に指定したconditionが含まれていないということです。 もしconditionnilのときは、 全てのrestartが集められます。

identifierがシンボルのとき、 もっとも内側(より最近確立されたもの)の その名前の適用可能なrestartが返却されます。 そのようなrestartがない場合はnilです。

もしidentifierが現在の有効なrestartのときは、 それが返却されます。 そうでないときはnilが返却されます。

例文

(restart-case
    (let ((r (find-restart 'my-restart)))
      (format t "~S is named ~S" r (restart-name r)))
  (my-restart () nil))
>>  #<RESTART 32307325> is named MY-RESTART
=>  NIL
(find-restart 'my-restart)
=>  NIL

副作用

なし。

影響

存在するrestart

restart-case, restart-bind, with-condition-restarts

例外

なし。

参考

compute-restarts

備考

(find-restart identifier)
==  (find identifier (compute-restarts) :key :restart-name)

匿名のrestartnilという名前ですが、 identifiernilを指定したときの結果は未定義です。 たまにプログラマーはidentifierの引数に nilは許されないと主張します。 そのような場合、compute-restartsで おそらく似たような効果を行うことができます。


TOP, Github