Wolfram ResearchProductsPurchasingServices & ResourcesAbout UsOur Sites
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.

Documentation / Mathematica / Mathematicaブック / Mathematicaの仕組み / 式の評価 /

2.6.10 評価中に式を集める

多くの場合は入力された式の評価の最終結果だけに興味があるが,評価の途中で生成された式を取り出したいこともある.SowReapを使うとこれが可能になる.

SowReapを使う

ここでは出力に最終結果しか入っていない.

In[1]:= a = 3; a += a^2 + 1; a = Sqrt[a + a^2]

Out[1]=

次の場合は中間の2つの結果もまた含まれている.

In[2]:= Reap[Sow[a = 3]; a += Sow[a^2 + 1]; a = Sqrt[a + a^2]]

Out[2]=

これは偶数項をすべて集めて総和を計算する.

In[3]:= Reap[Sum[If[EvenQ[#], Sow[#], #]& [i^2 + 1], {i, 10}]]

Out[3]=

SowReapThrowCatchのように計算のどこででも使うことができる.

Sowできる関数を定義する.

In[4]:= f[x_] := (If[x < 1/2, Sow[x]]; 3.5 x (1 - x))

これは1/2より小さな場合をすべて刈り取って関数をネストさせる.

In[5]:= Reap[Nest[f, 0.8, 10]]

Out[5]=

タグ播きと刈り取り

これはのタグ xを付けて播かれた値だけを刈り取る.

In[6]:= Reap[Sow[1, x]; Sow[2, y]; Sow[3, x], x]

Out[6]=

ここでは1がタグxを付けて2度播かれている.

In[7]:= Reap[Sow[1, {x, x}]; Sow[2, y]; Sow[3, x], x]

Out[7]=

異なるタグを付けて播かれた値は異なるサブリストに入れられる.

In[8]:= Reap[Sow[1, {x, x}]; Sow[2, y]; Sow[3, x]]

Out[8]=

これは播かれたタグの形式別のサブリストを作る.

In[9]:= Reap[Sow[1, {x, x}]; Sow[2, y]; Sow[3, x], {x, x, y}]

Out[9]=

個々のタグと値のリストにfを適用する.

In[10]:= Reap[Sow[1, {x, x}]; Sow[2, y]; Sow[3, x], _, f]

Out[10]=

このタグを計算の一部にすることができる.

In[11]:= Reap[Do[Sow[i/j, GCD[i, j]], {i, 4}, {j, i}]]

Out[11]=



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information


 © 2008 Wolfram Research, Inc.  Terms of Use  Privacy Policy |
Sign up for our newsletter: