Next: Quitting, Previous: Special Events, Up: Command Loop [Contents][Index]
待機関数(wait
function)は特定の時間が経過するか、入力があるまで待機するようにデザインされています。たとえば、計算の途中でユーザーがディスプレイを閲覧できるように一時停止したいときがあるかもしれません。sit-for
は一時停止して画面を更新、sleep-for
は画面を更新せずに一時停止して、入力が到着したら即座にリターンします。
この関数は、(ユーザーからの保留中入力がない場合は)再描画を行ってから、seconds秒、または入力が利用可能になるまで待機する。sit-for
の通常の目的は、ディスプレイしたテキストをユーザーが読み取る時間を与えるためである。入力が何も到着せず(Event Input Miscを参照)、時間をフルに待機した場合はt
、それ以外はnil
が値となる。
引数secondsは整数である必要はない。浮動小数点数の場合、sit-for
は秒の少数点数を待機する。整数の秒だけをサポートするいくつかのシステムでは、secondsは切り捨てられる。
保留中の入力が存在しない場合、式(sit-for
0)
は遅延なしに再描画をリクエストする(redisplay)
と等価である。Forcing Redisplayを参照のこと。
nodispが非nil
の場合sit-for
は再描画を行わないが、それでも入力が利用可能になると(またはタイムアウト時間が経過すると)即座にリターンする。
バッチモード(Batch Modeを参照)では、たとえ標準入力ディスクリプタからの入力でも割り込みできまい。これは以下で説明するsleep-for
でも同じである。
(sit-for seconds millisec
nodisp)
のように、3つの引数でsit-for
を呼び出すことも可能だが時代遅れだと考えられている。
この関数は表示を更新せず、単にseconds秒間一時停止する。これは利用可能な入力に注意を払わない。この関数はnil
をリターンする。
引数secondsは整数である必要はない。浮動小数点数の場合、sleep-for
は秒の少数点数を待機する。整数の秒だけをサポートするいくつかのシステムでは、secondsは切り捨てられる。
オプション引数millisecはミリ秒単位で追加の待機期間を指定する。これはsecondsで指定された期間に追加される。システムが小数点の秒数をサポートしない場合、非0のmillisecを指定するとエラーとなる。
遅延を保証したい場合はsleep-for
を使用する。
現在時刻を取得する関数については、Time of Dayを参照してください。