Wolfram Computation Meets Knowledge

Wolfram言語:
プログラミングの基本

次の言語の注意事項を表示:
すべてのセクション 
  • Wolfram言語について
  • 次の言語の注意事項を表示:
  • Javaの注意事項を表示
  • Pythonの注意事項を表示
  • 注意事項を隠す
使い始めましょう

パターン ビデオバージョン

Javaプログラマー向けの注意事項

Wolfram言語のパターン言語を使うと,任意の記号構造のパターンを記述することができるため,強力な正規表現のような操作をあらゆる式およびあらゆる形式のデータに一般化することができます.

Pythonプログラマー向けの注意事項

Wolfram言語のパターン言語を使うと,任意の記号構造のパターンを記述することができるため,強力な正規表現のような操作をあらゆる式およびあらゆる形式のデータに一般化することができます.

パターンは式のクラスを表します.基本的なパターン構造_(「ブランク」と読みます)は任意の式を表します.

リストの中からパターンf[_]にマッチするものを見付けます:

In[1]:=1
Cases[{f[1], g[2], f[5], g[3]}, f[_]]
Out[1]=1

x_x:_の短縮形)は,値が x と名付けられるパターンを表します:

In[2]:=2
Replace[f[100], f[x_] -> x + 5]
Out[2]=2

/.は「すべて置換」を意味します:

In[3]:=3
{f[1], g[2], f[5], g[3]} /. f[x_] -> x + 5
Out[3]=3

Javaプログラマー向けの注意事項

ここで示したような構造的メタプログラミングは,Wolfram言語の記号構造独特のものです.

Pythonプログラマー向けの注意事項

コードとデータを同様に扱う,このような構造的メタプログラミングは,Wolfram言語の記号構造独特のものです.


__(ダブルブランク)は任意の式の列を表します:

In[1]:=1
Cases[{f[1, 2], f[1], g[3]}, f[__]]
Out[1]=1

a | b | c は「abc」を意味します:

In[1]:=1
Cases[{f[1], g[2], f[2], f[5], g[3]}, f[1 | 5]]
Out[1]=1

Javaプログラマー向けの注意事項

この|の使い方はJavaの正規表現の表記に似ていますが,Javaでは|はビット和を表すこともあります.

Pythonプログラマー向けの注意事項

|は,Pythonの正規表現で使われるのと同様にWolfram言語のパターンで使われます.しかし,Wolfram言語では,|は文字列だけではなく,どのようなタイプの記号的パターンにも使えます.

これは頭部でも使えます:

In[2]:=2
Cases[{f[1], g[2], f[2], f[5], g[3]}, (f | g)[2]]
Out[2]=2

_h は,頭部 h を持つ任意の式を表します:

In[1]:=1
Cases[{1, 2.5, 3.5, 4}, _Real]
Out[1]=1

:>は遅延規則です.規則の:=と類似したものです.

参照:パターンを含む操作


g[1, 2, 3]にマッチするパターンは以下のうちのどれでしょうか?


リスト{f[1], g[2], f[5], g[3]}から,g[_]にマッチする要素すべてを選ぶのは,以下のうちのどれでしょうか?


{f[1], f[5], f[x]} /. f[x_] x + 4の結果は,下のうちのどれでしょうか?

© 2021 Wolfram. All rights reserved.