待機関数(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
でも同様。
(sit-for seconds millisec
nodisp)
のように3つの引数でsit-for
を呼び出すことも可能だが、時代遅れだと考えられている。
この関数は表示を更新せず単にseconds秒の間一時停止する。これは利用可能な入力に注意を払わない。この関数はnil
をリターンする。
引数secondsは整数である必要はない。浮動小数点数ならsleep-for
は小数点数の秒を待機する。整数の秒だけをサポートするいくつかのシステムではsecondsは切り捨てられる。
オプション引数millisecはミリ秒単位で追加の待機時間を指定する。これはsecondsで指定された時間に追加される。システムが小数点数の秒数をサポートしなければ、非0のmillisecを指定するとエラーとなる。
遅延を保証したければsleep-for
を使用すること。
現在時刻を取得する関数については時刻を参照してください。