generated at
Mathematica


実行
shift-Enter
ヘルプ
?<Func> で関数の情報を見れる
nb
In[1]:= ?Plot Plot[f,{x,Subscript[x, min],Subscript[x, max]}] generates a plot of f as a function of x from Subscript[x, min] to Subscript[x, max]. Plot[{Subscript[f, 1],Subscript[f, 2],...},{x,Subscript[x, min],Subscript[x, max]}] plots several functions Subscript[f, i]. >>
?<Func>* で<Func>から始まる関数名の一覧を表示
??<Func> でパラメータも確認できる


ユーザ定義関数は大文字から初めなくても良い
{} はリスト、範囲を定義
[] は関数に使う
== は方程式を定義するときに使う



変わった記号


関数型プログラミング
これを一つずつ読み込みたい
# ref
Map関数などで使う
nb
Map[StringCount[我輩は猫である, Alternatives[#] &, {小学校1学年,小学校2学年}]
# の部分にMapの第二引数のリストが順次適用される
Map
/@ は糖衣構文。より関数型っぽくかける
Select
TSのfilter
& は無名関数
@
@@
反復関数
Nest関数
再帰関数の代わりに使う?
パターンマッチを使った関数定義
constraint
Guardのこと
nb
fac[n_ /; n > 0] := n!
これをやってみると
nb
WPower[a_, 0] := 1 WPower[a_, n_ /; EvenQ[n]] := WPower[a*a, (Quotient[n, 2])] WPower[a_, n_ /; OddQ[n]] := a*WPower[a, (n - 1)]
リストのheadとtail
Haskellの(Head, Tail)は、(First, Rest)が対応
headは h_ , tailは t__ で表す
アンダーバーの話 ref
nb
(* 2進数表示のリストを10進数の値に変換 *) B2d[{0}] := 0 B2d[{1}] := 1 B2d[{h_, t__}] := 2^(Length[{t}])*h + B2d[{t}] (* ちゃんと書くなら *) B2d[m_]:=2^(Length[m]-1)*First[m]+B2d[Rest[m]]
clearする
nb
ClearAll["Global`*"]