"Function" (リソースオブジェクトタイプ)

詳細

  • それぞれの関数リソースにはResourceFunctionでアクセスできる1つの関数が含まれている.

特性

  • すべてのリソースタイプに共通のResourceObjectの標準的な特性がある ».また,それぞれのリソースタイプは追加の特性を定義する.
  • 関数の内部ストレージに関連付けられた関数リソースの特性には以下がある:
  • "Function"関数を定義する未加工の内部シンボル
    "Symbol"HoldFormでの内部シンボル名
    "SymbolName"根底にあるシンボルの完全修飾文字列名
    "Context"内部シンボルのコンテキスト
    "Definition"専用コンテキストでの関数の定義(Definition)
    "DefinitionData"定義を含むWXFのバイト配列(ByteArray)
    "DefinitionList"内部データ構造を使って保存された定義
    "DefaultValues"関数のデフォルト値(DefaultValues)
    "DownValues"関数の下向きの値(DownValues)
    "FullDefinition"専用コンテキストにおける関数の完全定義(FullDefinition)
    "Messages"関数に対して定義されたメッセージのリスト
    "Options"関数のオプション(Options)
    "OwnValues"関数自身の値(OwnValues)
    "SubValues"関数の部分値(SubValues)
    "UpValues"関数の上向きの値(UpValues)
  • 次は関数リソースの追加の特性である:
  • "DocumentationNotebook"使用法,詳細,例題を含むドキュメントノートブック
    "FunctionLocation"関数を含むCloudObjectLocalObject,またはFile
    "VerificationTests"関数に対して定義されたVerificationTestオブジェクト
    "TestNotebook""VerificationTests"を含む,生成されたテストノートブック
    "TestReport""VerificationTests"を評価した結果
    "Usage"関数使用法のフォーマットされた概要
  • 公開されているリソース関数の定義がダウンロードされると,この先使えるように通常ローカルに保存される.キャッシュが発生すると,"FunctionLocation"の値はCloudObjectからLocalObjectに変わる.
  • 関数リソースはすべて特性"ResourceType""Function"を持つ.
  • 以下は関数リソースをソートするのに使われる特性である:
  • "Categories"関数に関連付けられた領域のリスト
  • 次は関数リソースに対するResourceObjectの広く使われる標準的な特性である:
  • "DefinitionNotebook"関数とリソースを定義するノートブック
    "ExampleNotebook"入力と出力の例のノートブック
    "Version"ローカルコピーのバージョン

関数リソースを使う

関数リソースを作成する

  • 単純な関数リソースを作成するには,DefineResourceFunctionを使うのが最も簡単である.生成されたResourceFunctionResourceObjectを適用することでResourceObjectを取り出すことができる.
  • 完全なメタデータを含む関数リソースを作成するためには,CreateNotebook["FunctionResource"]で利用可能な定義ノートブックを使う.
  • 定義ノートブックを使うと,リソースをローカルに保存したり,クラウドに配備したり,Wolfram Data Repositoryに送信して公開したりすることもできる.

Function Repositoryで公開する

  • 関数リソースはWolfram Function Repositoryで公開することができる.
  • 関数リポジトリに送信するためにはPublisherIDが必要である.
  • 公開にはリビューチームの承認が必要であり,通常変更が伴う.リビュープロセスの効率化を図るためには,スタイルガイドラインに従うとよい.

例題

すべて開くすべて閉じる

  (2)

公開されているリポジトリから関数リソースを取り出す:

リソースにはタイプ"Function"が含まれる:

リソースからResourceFunctionを作成する:

関数を使う:

DefineResourceFunctionを使って新規のリソース関数を作成する:

関数を使う:

ResourceObjectを取り出す:

スコープ  (2)

公開されている関数リソースのメタデータを調べる:

関数定義を含むCloudObjectを見る:

定義ノートブックを開く:

カテゴリを見る:

空の関数リソース定義ノートブックを開き,メタデータを含む新規関数を作成する: