特殊な割当て形

特に手続き的なプログラムを書いているときは,特定の変数に割り当てられた値をいろいろと変えていく必要が出てくる.これは,新たな値を構築し, のような割当てを明示的に行うことでもできるが,変数の値の加減や,その他の標準的な演算を行う場合は,特別な記述法が用意されているので,そちらを使った方が簡単でよい.

i++i の値を増加させる
i--i の値を増加させる
++ii の参照値は増加後の値
--ii の参照値は減少後の値
i+=dii の値に di を加える
i-=dii の値から di を引く
x*=cxc を掛ける
x/=cxc で割る

変数の値の変更

変数に値を割り当てる.
In[1]:=
Click for copyable input
Out[1]=
の値を増加させる.
In[2]:=
Click for copyable input
Out[2]=
の値が変わったか確認する.
In[3]:=
Click for copyable input
Out[3]=
を割り当て,それにを掛け,そして,の最終値を表示させる.
In[4]:=
Click for copyable input
Out[4]=
の値は,増加される前のの値である.
の値は,増加後のの値である.
x=y=valuexy に同じ値を割り当てる
{x,y}={value1,value2}xy に別々の値を割り当てる
{x,y}={y,x}xy の値を交換する

複数の変数への値の一括割当て

にはが割り当てられ,にはが割り当てられる.
In[7]:=
Click for copyable input
Out[7]=
の値を交換する.
In[8]:=
Click for copyable input
Out[8]=
の値)になったかどうか確認する.
In[9]:=
Click for copyable input
Out[9]=
も同様に確認する.
In[10]:=
Click for copyable input
Out[10]=
リストに割当てを行うことで,並び順をいろいろ変えてやることもできる.
In[11]:=
Click for copyable input
Out[11]=

Wolfram言語でプログラムを書いていて,あらかじめ作っておいたリストに後から要素を加えたいときがある.関数PrependToAppendToを使うとこれができるようになる.

PrependTo[v,elem]リスト v の先頭位置に新たな要素 elem を挿入する
AppendTo[v,elem]リスト v の末尾位置に新たな要素 elem を挿入する
v={v,elem}前のリスト v をサブリストとし,同じレベルに新たな要素 elem を追加したリストを構築し,それを v に割り当てる

リストの割当てと要素の追加

数のリストに割り当てる.
In[12]:=
Click for copyable input
Out[12]=
要素の値に加える.
In[13]:=
Click for copyable input
Out[13]=
の値が変わったかどうか確認する.
In[14]:=
Click for copyable input
Out[14]=

AppendTo[v,elem]v=Append[v,elem]は機能的に等しいが,記述するには前者の方が使いやすいことが多いだろう.ただし,Wolframシステムで使われるリストの保存の仕方のため,特定のリストに要素の列を追加する操作は,普通,ネストした構造体(例えば,各レベルのサブリスト長を2としたリスト)を構築する操作より処理能率が悪い.そのような構造体を作るときは,常に,Flattenを作用させることで,それを単一リストにすることができる.

に関してネストしたリスト構造体を設ける.
In[15]:=
Click for copyable input
Out[15]=
Flattenを使うことで,構造体を平坦化することができる.
In[16]:=
Click for copyable input
Out[16]=