Function Y-OR-N-P, YES-OR-NO-P
y-or-n-p &optional control &rest arguments => generalized-boolean
yes-or-no-p &optional control &rest arguments => generalized-boolean
control - format-control
arguments - controlに対するformat-arguments
generalized-boolean - generalized-boolean
これらの関数は質問を行い、ユーザーからの返答を解釈します。 もし返答が肯定であったときはtrueを返却し、 返答が否定的であったときはfalseを返却します。
y-or-n-pはユーザーに質問を行い、 答えが「yes」か「no」かのどちらかを問いかけます。 この関数はユーザーの返答がyesかnoか 単一の文字であることを要求し、 返信することを意図しています。 yes-or-no-pもまたユーザーに質問を行い、 答えが「Yes」か「No」かのどちらかを問いかけます。 この関数はユーザーにちょうどひとつのキー押下以上の行動を要求し、 例えばyesやnoという完全な単語の後に 改行をタイプするようなことを意図しています。
y-or-n-pは、(もし指定されたなら)メッセージを出力し、 実装依存の入力で (短く単純であることを意図しており、例えば単一の文字であるYかNを読み込みます) 返答を読み込みます。 yes-or-no-pは、(もし指定されたなら)メッセージを出力し、 ユーザーの注意を引き付け (例えば、ターミナルのベルを鳴らしたり) 実装依存の入力で (複数の文字を意図しており、例えばYESかNOを読み込みます) 返答を読み込みます。
もしformat-controlが指定され、 それがnilではないとき、 まずはfresh-line操作が実行されます。 そのあとformat-controlとargumentsがformatに与えられて メッセージが出力されます。 いかなる場合でも、yes-or-no-pとy-or-n-pは 適切であるならば(Y or N)か(Yes or No)のようなプロンプトが提供されます。
全ての入出力はquery I/Oを使い実行されます。
(y-or-n-p "(t or nil) given by")
>> (t or nil) given by (Y or N) Y
=> true
(yes-or-no-p "a ~S message" 'frightening)
>> a FRIGHTENING message (Yes or No) no
=> false
(y-or-n-p "Produce listing file?")
>> Produce listing file?
>> Please respond with Y or N. n
=> falsequery I/Oに対しての入出力が生じます。
なし。
yes-or-no-p:link}とy-or-n-pはプロンプトの文字列の 最後にクエスチョン文字を追加しないので、 クエスチョンの文字や他の句読点を使いたいのであれば、 テキストの質問文に明示的に含める必要があります。