待機関数(wait
function)は特定の時間が経過するか、入力があるまで待機するようにデザインされています。たとえば計算の途中でユーザーがディスプレイを閲覧できるように一時停止したいときがあるかもしれません。sit-forは一時停止して画面を更新して、sleep-forは画面を更新せずに一時停止して入力が到着したら即座にリターンします。
この関数は、(ユーザーからの保留中入力がければ)再描画を行ってからseconds秒、または入力が利用可能になるまで待機する。sit-forの通常の目的は、表示したテキストをユーザーが読み取る時間を与えるためである。入力が何も到着せず(その他のイベント入力の機能を参照)、時間をフルに待機したらt、それ以外はnilが値となる。
引数secondsは整数である必要はない。浮動小数点数ならsit-forは小数点数の秒を待機する。整数の秒だけをサポートするいくつかのシステムではsecondsは切り捨てられる。
保留中の入力が存在しなければ、式(sit-for
0)は遅延なしで再描画をリクエストする(redisplay)と等価である。強制的な再表示を参照のこと。
nodispが非nilならsit-forは再描画を行わないが、それでも入力が利用可能になると(またはタイムアウト時間が経過すると)即座にリターンする。
batchモード(batchモードを参照)では、たとえ標準入力ディスクリプタからの入力でも割り込みできない。これは以下で説明するsleep-forでも同様。
この関数は表示を更新せず単にseconds秒の間一時停止する。これは利用可能な入力に注意を払わない。この関数はnilをリターンする。
引数secondsは整数である必要はない。浮動小数点数ならsleep-forは小数点数の秒を待機する。
(sleep-for seconds
millisec)のように2つの引数でsleep-forを呼び出すことも可能だが、時代遅れだと考えられており将来削除されるだろう。
遅延を保証したければsleep-forを使用すること。
現在時刻を取得する関数については時刻を参照してください。