AskFunction

AskFunction[body]

Ask[]および関連構造で指定された値を求めて body をインタラクティブに評価する.

AskFunction[{"key1"spec1,"key2"spec2,},body]

keyiに関連付けられた値をどのように求めるかを指定する.

詳細とオプション

  • AskFunctionの本体には次の特殊構造を使うことができる.
  • Ask[]キーの値が未知の場合にこれを求める
    AskedValue[]キーの値が既知の場合にこれを得る
    AskAppend[]値を求め,既知の値のリストにこれを加える
    AskConfirm[]値を確認または変更する
    AskDisplay[]求めた値を挿入して式を表示する
    AskTemplateDisplay[]求めた値に適用したテンプレートを表示する
    AskedQ[]キーの値が求められたかどうかを判定する
  • AskFunction[][]はノートブック内で評価され,値を求めることが必要な構造に遭遇するたびにフォームを表示する.
  • CloudDeploy[AskFunction[]]AskFunctionのアクティブなバージョンに対応するCloudObjectを返す.
  • AskFunction[][<|"keyk"->inputk|>]は,"keyk"に関連付けられた値が inputkであるとみなされるAskFunctionを表す.

例題

すべて開くすべて閉じる

  (1)

AskFunctionを設定する:

これをアクティブにして入力に記入する:

クラウドに配備することもできる:

プログラムを使って既知の値を与えることもできる:

これで2番目の質問だけが問われるようになった:

スコープ  (3)

AskFunctionの第1引数を与え,値の求め方を指定する:

AskFunctionはWolfram言語の評価セマンティックスを使って不要な質問は飛ばす:

Noを選ぶと配偶者名についての質問が飛ばされる:

FormFunctionおよびFormObjectと同じ構文を使って質問の外観を指定する:

一般化と拡張  (7)

単純な質問,つまりキーに関連付けられた値を得るためにAskFunctionAskと組み合せて使う:

AskConfirmを使って値が未知の点まで計算を巻き戻すことができる:

AskAppendを使って入力を累積する:

AskDisplayを使ってメッセージを表示する:

AskTemplateDisplayは現行値に適用する関数あるいはテンプレートを取る:

AskedQを使ってキーが求められたかどうかを確かめる:

AskedValueはフォームを表示せずに値を返す:

考えられる問題  (1)

AskFunctionがクラウドに配備されると,クリーンカーネルが訪れるたびにボディが再評価される.このため,ランダムな値を返す関数は各ステップで異なる値を返すことがある:

これを回避する方法の一つに,SeedRandomを使って前の値あるいは$RequesterAddressのような値に依存するシードで擬似乱数生成器を初期化することが考えられる:

Wolfram Research (2016), AskFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/AskFunction.html.

テキスト

Wolfram Research (2016), AskFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/AskFunction.html.

CMS

Wolfram Language. 2016. "AskFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/AskFunction.html.

APA

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

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_askfunction, organization={Wolfram Research}, title={AskFunction}, year={2016}, url={https://reference.wolfram.com/language/ref/AskFunction.html}, note=[Accessed: 21-November-2024 ]}