"Ruby" (外部評価システム)
詳細
- Rubyバージョン2.0以降がサポートされる.
- Wolfram言語でRubyが使えるよう設定するためには,ワークフローの「ExternalEvaluate用にRubyを設定する」の手順に従うとよい.
ExternalEvaluateの使用法
- ExternalEvaluate["Ruby",code] はRuby REPLでコード列を実行し,Wolfram言語式として結果を返す.
- ExternalEvaluate["Ruby""String",code] はRuby REPLでコード列を実行し,Wolfram言語式として結果を返す.
- ExternalEvaluate["Ruby""type",code]の"type"として可能な設定:
-
"Expression" Wolfram言語式に変換しようと試みる "String" 外部評価子によって出力された生の文字列を与える "ExternalObject" 結果をExternalObjectとして返す
サポートされる外部操作
- ExternalOperation["Eval","code"]は"code"の外部評価を表す.
- ExternalOperation["Eval","code",assoc]はパラメータが assoc で与えられた"code"の外部評価を表す.
- ExternalOperation["Call",func,arg1,arg2,…]は与えられた引数が arg1, arg2, … の関数func を呼び出す.
- ExternalOperation["GetAttribute",obj,"attr"]は obj の属性"attr"を得る.
- ExternalOperation["SetAttribute",obj,"attr",val]は obj の属性"attr"を与えられた値 val に設定する.
- ExternalOperation["Cast",obj,"type"]は obj を指定された"type"に変換する.
例題
すべて開くすべて閉じる例 (3)
>とタイプしてドロップダウンメニューからRubyを選ぶと,評価にExternalEvaluateを使うコードのセルが得られる:
スコープ (28)
セッションオプション (9)
"ReturnType" (3)
Ruby評価システムでは,デフォルトの戻り型は"Expression"である:
"Expression"戻り型では,数,文字列,リスト,連想は自動的にインポートされる:
"String"戻り型は,Rubyメソッドの to_s を呼び出すことによって結果の列を返す:
コマンドオプション (10)
"Command" (3)
"ReturnType" (1)
"Arguments" (2)
"Arguments"を使って,引数付きのRuby関数を呼び出す:
リスト以外の引数が与えられると,関数には単独の引数が渡される:
第一引数としてリストを渡す必要がある場合は,追加のリストで明示的にそれをラップしなければならない:
"Command"内で関数を定義し,"Arguments"で直接それを呼び出すことができる:
Ruleを使っても同じ結果を得ることができる:
ExternalFunctionを生成することによって引数を渡すこともできる:
"TemplateArguments" (3)
コマンドを実行するとき,TemplateExpressionを行内に埋め込むことができる:
"TemplateArguments"を使うと明示的にTemplateSlotを埋めることができる:
リスト以外の引数が与えられると,テンプレートには単独のテンプレート引数が渡される:
第一引数としてリストを渡す必要がある場合,それを明示的に追加のリストでラップしなければならない:
テンプレートスロットに名前を付け,Associationを使うと,テンプレートに名前付きの引数を渡すことができる:
外部操作 (8)
"Eval" (1)
"Call" (3)
Rubyで関数を作成するExternalOperationを定義する::
ExternalOperation "Call"を実行して関数を呼び出す:
ExternalEvaluateを使って操作を実行する:
"Call"操作のいずれの引数もExternalOperationにすることができる:
以下のようにして,引数を直接ExternalEvaluateに渡すこともできる:
Ruby関数のExternalFunctionを作成する:
Ruby関数のExternalObjectを作成する::
ExternalObjectサブ値を使うこともできる:
"GetAttribute" (2)
Dateオブジェクトに対するExternalObjectを返す:
日付を表すExternalObjectを作成する:
ExternalOperationを使って現在の年を得る:
ほとんどの評価子では"GetAttribute"がデフォルト操作であり,ExternalOperationは省略できる:
"SetAttribute" (1)
"Cast" (1)
現在の日付を表すExternalObjectを作成する:
"Expression"を使ってオブジェクトをWolfram言語式として返す:
Cast操作もExternalObjectサブ値で実行することができる:
シンボルExpressionは同じことについてのショートカットである:
シンボルStringは同じ操作の近道である:
オブジェクトをExternalObjectとして返す:
シンボルExternalObjectは同じ操作の近道である:
ExternalEvaluateで"ReturnType"を使っても同じことができる: