Mathematica
実行
shift-Enter
ヘルプ
?<Func>
で関数の情報を見れる
nbIn[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>
でパラメータも確認できる
ユーザ定義関数は大文字から初めなくても良い
{}
はリスト、範囲を定義
[]
は関数に使う
==
は方程式を定義するときに使う
変わった記号
関数型プログラミング
これを一つずつ読み込みたい
Map関数などで使う
nbMap[StringCount[我輩は猫である, Alternatives[#] &, {小学校1学年,小学校2学年}]
#
の部分にMapの第二引数のリストが順次適用される
Map
/@
は糖衣構文。より関数型っぽくかける
Select
TSのfilter
&
は無名関数
@
は
@@
反復関数
Nest関数
再帰関数の代わりに使う?
パターンマッチを使った関数定義
constraint
Guardのこと
nbWPower[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__
で表す
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する