Wolfram (プログラミング言語)

ウィキペディアから

Wolfram言語ウルフラム・リサーチが開発した汎用性の高いマルチパラダイムプログラミング言語[5]であり、MathematicaとWolfram Programming Cloudのプログラミング言語である[6]。 記号プログラミング、関数型プログラミングルールベースプログラミング[7]に重点を置いており、任意の構造やデータが扱える[7]

概要 パラダイム, 登場時期 ...
閉じる

チューリングマシンの生成および実行、グラフィックスと音声の作成、三次元モデルの解析、行列の操作、微分方程式の解法のための組み込み関数などが含まれている。ドキュメントも豊富である[8]

Wolfram言語はRaspberry Piのすべてのシステムソフトウェアにバンドルされている[9][10]CES 2014で発表されたIntel EdisonもWolfram言語を統合している[11][12]Unityゲームエンジンにも統合される予定である[13]

名称

Wolfram言語という呼び方が正式とされたのは2013年6月からである。しかしそれ以前から30年以上Mathematicaのプログラミング言語を指し示す名称として使われていた[6][14]。他にも関係者間では「M」などいくつかの呼び名が使われた。公式名として検討に上がったものに「Lingua」や「Express」がある[7]

大衆文化

スティーブン・ウルフラムとクリストファー・ウルフラムは、映画『メッセージ』の制作において、Wolfram言語を使って異星人の言語の作成に携わった[15][16]

文法

Wolfram言語は基本的にLispのM式と似た形式である。多くのシンタックスシュガーが用意されているため、構文を親しみやすい形式で表現することができる。

さらに見る シンタックスシュガー による表現 (InputForm), 基本形式 (FullForm) ...
Wolfram 言語の例
シンタックスシュガー

による表現 (InputForm)

基本形式 (FullForm)
(a + b) * c Times[Plus[a,b],c]
{1, 2, 3<nowiki>}</nowiki> List[1, 2, 3]
f[x, y] f[x, y]
閉じる

関数の定義

以下は引数 x をとる関数 f の定義の例である。

f[x_] := x ^ 2 (*SetDelayed[f[Pattern[x,Blank[]],Power[x,2]*)

:=は遅延代入演算子と呼ばれ、これにより割り当てられた値は、値が必要になるたびに再評価される。x_ はあらゆる式にマッチするパターンで x という名前で参照される。Wolfram言語では関数はパターンに関する変換規則として与えられる。

純関数

Wolfram言語では無名関数が用意されており、純関数と呼ばれる。

1を足す純関数は以下のように表される。

(#+1)& (* Plus[Slot[1], 1] *)

以下の式

(#+1)&[50] (*=51*)

は51に評価される。

パターン・置換

Wolfram言語では部分式に対してパターンマッチングを行い、置換を行う構文が用意されている。

f[a] /. a->b  (* ReplaceAll[f[a], Rule[a, b] *)

を評価するとf[b]が得られる。

手続き型プログラム

Wolfram言語では手続き型のプログラムもサポートしている。ただし、多くの場合は必要でない。

以下のc言語のプログラム

int func(int n){
 int i,r=0;
 for(i=1;i<n;i++){
   r+=i*i;
 }
 return r;
}

はMathematicaでは

func[n_]:=Module[{i,r=0},
 For[i=0,i<n,i++,
  r+=i*i;
 ];
 r
]

と表現される。

脚注

関連項目

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.