Wolfram Computation Meets Knowledge

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

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

関数の適用 ビデオバージョン

複数の式に関数を適用したい場合がよくあります:

In[1]:=
Out[1]=

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

Wolfram言語のMapはPythonのmapと同様に動作しますが,Mapは任意の深さの式の木構造にも作用するという点が異なります.


/@(「スラッシュアット」と読みます)はMapの短縮表記です:

In[2]:=
Out[2]=

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

Wolfram言語のMapはJavaのStream.mapメソッドと同様に動作しますが,Mapはどのような式にも適用できるという点が異なります.


以下では純関数を使っています:

In[3]:=
Out[3]=

Applyを使うと,関数が要素全体に適用されます:

In[1]:=
Out[1]=

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

Wolfram言語のApplyはPythonのアンパック演算子*を使うのと同様です.


式には,部分を抽出するのに必要な指標の数に対応するレベルがあります.Mapのような関数は,特定のレベルに作用させることができます.

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

「レベル」とは配列の次元のことですが,記号式すべてに一般化されています.このような多次元演算はJavaには組み込まれておらず,通常ループが必要です.

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

「レベル」とは配列の次元のことですが,記号式すべてに一般化されています.Pythonの配列関数は,通常一次元配列だけに対して設定されています.

Mapはデフォルトではレベル1に作用します:

In[1]:=
Out[1]=

これはレベル2にのみ作用します:

In[2]:=
Out[2]=

@@Applyと等価であり,デフォルトではレベル0に作用します:

In[1]:=
Out[1]=

@@@は「レベル1で適用」を意味します:

In[2]:=
Out[2]=

@は通常の関数適用です:

In[3]:=
Out[3]=

評価するとg[{a, b, c}]となるのは,以下のどの式ですか?


評価すると{{f[a], f[b]}, {f[c], f[d]}}になるのは,以下のどれでしょうか?


評価すると{{{f[a], f[b]}}, {{f[c], f[d]}}}になるのは,以下のうちのどれでしょうか?

© 2024 Wolfram. All rights reserved.