Ask

Ask["key"]

AskFunction内で使う構造で,key と関連付けられた値を与え,それがまだ未知である場合はインタラクティブに尋ねる.

Ask["key"formspec]

formspec を使って入力の要求と解釈の仕方を定義する.

Ask[{"key1","key2",}]

必要があればインタラクティブに求め,すべての keyiに関連付けられた値を与える.

Ask[{"key1"->formspec1,"key2"->formspec2,}]

formspeciを使って keyiについての入力の要求と解釈の仕方を定義する.

詳細

  • AskFunction[{,"key"->spec,},body]の評価でAsk["key"]が最初に発生すると,"key"と関連付けられた値がフォームと spec で指定された解釈を使ってインタラクティブに要求される.続くAsk["key"]の評価は保存された値を返す.
  • Ask["key"]は,"key"をどのように尋ねるかの指定を与えないAskFunction内で評価される場合は,Ask["key"->"String"]と等価であるとみなされる.
  • Ask["key"]を使って"key"について求まった値は,続くAskAppend[]構造の評価を通して変更することが,またAskConfirm[]を通して削除することができる.
  • AskFunction内でどのようにキーについて尋ねるかが指定されている場合,それはそれ自身が含むAsk構造内で与える指定を無効にする.AskFunction内では何も指定されていない場合は,最初に評価されるAsk内の指定が使われる.
  • Ask["key"]=value またはAsk["key"]:=value を使ってAskFunction内のキーに関連付けられた値がすでに設定されていない場合に,これを設定することができる.
  • Ask["key"]=.は,AskFunction内のキーに関連付けられた値の設定を外し,事実上AskFunction内の評価を"key"の値が求められた以前の点に戻す.

例題

すべて開くすべて閉じる

  (3)

数を尋ねる:

ユーザ名と電子メールアドレスを集める:

既知の答は再度尋ねられることがない:

一般化と拡張  (6)

一度に複数の質問をする:

Askは複数のキーが与えられた場合にも既知の質問を省略する:

既知の値を取り出す:

既知の値を複数取り出す:

値はプログラム的に設定することができる:

最初の質問に対する答が"male"の場合,"pregnant"に関連付けられた値はプログラム的にFalseに設定される:

値の設定はプログラム的に解除することもできる:

値が正ではないので,ユーザはもとの質問まで戻される:

特性と関係  (4)

AskAppendの前にAskを使うと,結果を加える前に最初の答がリストとして囲まれる:

AskAppendの後でAskを使うと,フォームの表示なしで現在既知である値のリストが返される:

AskConfirmを使って値が未知の時点に評価を巻き戻すことができる.AskAppendについての負の出力で削除されたAskの値は再度尋ねられる:

キーに関連付けられた値の設定を解除することで,AskConfirmの設定を行うことができる:

考えられる問題  (1)

Askに存在しないインタープリタタイプが与えられると,デフォルトの"String"が使われる:

Wolfram Research (2016), Ask, Wolfram言語関数, https://reference.wolfram.com/language/ref/Ask.html (2017年に更新).

テキスト

Wolfram Research (2016), Ask, Wolfram言語関数, https://reference.wolfram.com/language/ref/Ask.html (2017年に更新).

CMS

Wolfram Language. 2016. "Ask." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/Ask.html.

APA

Wolfram Language. (2016). Ask. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Ask.html

BibTeX

@misc{reference.wolfram_2024_ask, author="Wolfram Research", title="{Ask}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/Ask.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_ask, organization={Wolfram Research}, title={Ask}, year={2017}, url={https://reference.wolfram.com/language/ref/Ask.html}, note=[Accessed: 22-November-2024 ]}