Ask["key"]
AskFunction内で使う構造で,key と関連付けられた値を与え,それがまだ未知である場合はインタラクティブに尋ねる.
Ask["key"formspec]
formspec を使って入力の要求と解釈の仕方を定義する.
Ask[{"key1","key2",…}]
必要があればインタラクティブに求め,すべての keyiに関連付けられた値を与える.
Ask[{"key1"->formspec1,"key2"->formspec2,…}]
formspeciを使って keyiについての入力の要求と解釈の仕方を定義する.
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)
CloudDeploy[AskFunction[Ask[{"n", "enter a number"} -> "Number"]]]CloudDeploy[AskFunction[{Ask["name" -> "String"], Ask["email" -> "EmailAddress"]}]]CloudDeploy[AskFunction[Ask["name" -> "String"];{Ask["name" -> "String"], Ask["email" -> "EmailAddress"]}]]スコープ (6)
CloudDeploy[AskFunction[Ask[{"job" -> {"dentist", "CEO", "intern"}, "income" -> "CurrencyAmount", "gender" -> {"Female", "Male"}}]]]Askは複数のキーが与えられた場合にも既知の質問を省略する:
CloudDeploy[AskFunction[Ask["job" -> {"dentist", "CEO", "intern"}];Ask[{"job" -> {"dentist", "CEO", "intern"}, "income" -> "CurrencyAmount", "gender" -> {"Female", "Male"}}]]]CloudDeploy[AskFunction[Ask[{"sum", "2 + 2 =?"} -> "Number"]; If[Ask["sum"] == 4, "correct", "wrong!"]]]CloudDeploy[AskFunction[Ask[{"interest-rate", "What is your current interest rate"} -> "Percent"];
If[
Ask[{"change", "Would you like to renegotiate it?"} -> {"Yes" -> True, "No" -> False}] , Ask[{"capital", "What is your current capital?"} -> "CurrencyAmount"]];Ask[{"change", "capital"}]
]]CloudDeploy[AskFunction[If[Ask[{"gender", "What is your gender"} -> {"male", "female"}] === "male", Ask["pregnant"] = False, Ask[{"pregnant", "Are you pregnant?"} -> {"Yes" -> True, "No" -> False}]];
If[Ask["pregnant"], "Congratulations!", "Ok"]]]最初の質問に対する答が"male"の場合,"pregnant"に関連付けられた値はプログラム的にFalseに設定される:
CloudDeploy[AskFunction[If[Ask[{"x", "Enter a positive number"} -> "Number"] ≤ 0, AskDisplay["The value you entered is not positive. Try again."]; Ask["x"] =., AskDisplay["Congratulations, you win!"]]]]特性と関係 (4)
AskAppendの前にAskを使うと,結果を加える前に最初の答がリストとして囲まれる:
CloudDeploy[AskFunction[Ask["number" -> "Number"]; AskAppend["number"]]]AskAppendの後でAskを使うと,フォームの表示なしで現在既知である値のリストが返される:
CloudDeploy[AskFunction[Ask["number" -> "Number"];AskAppend["number"]; Ask["number"]]]AskConfirmを使って値が未知の時点に評価を巻き戻すことができる.AskAppendについての負の出力で削除されたAskの値は再度尋ねられる:
CloudDeploy[AskFunction[Ask[{"sum", "what is 2+2?"} -> "Number"]; If[Ask["sum"] ≠ 4, AskConfirm["sum", "are you sure 2+2 = `value`?"]; "wrong", "correct"]]]キーに関連付けられた値の設定を解除することで,AskConfirmの設定を行うことができる:
CloudDeploy[AskFunction[Ask[{"sum", "what is 2+2?"} -> "Number"]; If[Ask["sum"] ≠ 4, If[!Ask[{"confirm", StringTemplate["are you sure 2+2 = ``?"][Ask["sum"]]} -> "Boolean"], Ask["sum"] =.]; "wrong", "correct"]]]関連するガイド
関連するワークフロー
- 対話型インターフェースを作成する
テキスト
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_2026_ask, author="Wolfram Research", title="{Ask}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/Ask.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_ask, organization={Wolfram Research}, title={Ask}, year={2017}, url={https://reference.wolfram.com/language/ref/Ask.html}, note=[Accessed: 13-September-2026]}