関数の定義
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/15 09:27 UTC 版)
「ML (プログラミング言語)」の記事における「関数の定義」の解説
MLの関数の定義は fun (関数名)(引数) = (内容); と書く。Haskellと同様なパターンマッチングがある。複数のパターンはガード記法 | をセパレータとする。 例として階乗を求めるプログラムを以下に示す。 fun factorial(1) = 1 | factorial(n) = n * factorial(n-1); MLでの関数の評価は関数が定義されたときに行われる。このためMLでは関数定義の順序が無視できない。例として fun a(x) = b(x-1) + x; fun b(x) = x * x; のような関数がある場合は必ず b の方が先に定義されていないといけない。しかしこの場合はお互いを呼ぶような再帰呼び出しの実装が不可能である。そこでMLではそのような関数のために二つの関数を and でつなぐことによってこれを実装することができる。例を挙げると fun take(nil) = nil | take(x::xs) = x::skip(xs) and skip(nil) = nil | skip(x::xs) = take(xs); これは take が与えられたリストの奇数番目の要素を返し、skip が偶数番目の要素を返す関数である。
※この「関数の定義」の解説は、「ML (プログラミング言語)」の解説の一部です。
「関数の定義」を含む「ML (プログラミング言語)」の記事については、「ML (プログラミング言語)」の概要を参照ください。
関数の定義
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/31 20:00 UTC 版)
関数の定義は以下のように行う。例えば関数fを f ( x ) = x × exp ( − x 2 ) {\displaystyle f(x)=x\times \exp(-{x}^{2})} と定義したい場合には、 f:=x->x*exp(-x^2); と入力すればよい。2変数以上の関数もほぼ同様で、例えば関数fを g ( x , y ) = y × exp ( − x 2 ) {\displaystyle g(x,y)=y\times \exp(-{x}^{2})} と定義したい場合には、 g:=(x,y)->y*exp(-x^2); と入力すればよい。一般に関数には変数が存在する。人間は関数を見せられた場合に『何が変数であるか』を理解できるが、機械はそうではない。したがって、変数が何なのかを明示する必要がある。上記のコマンドにおいて、変数が何なのかを明示する役割を果たしている記号がそれぞれ『x->』『(x,y)->』である。もちろん f:=x*exp(-x^2); のように変数を明示しない定義の仕方もあるが、これだと、後々別のコマンドと組み合わせる際に何らかの不都合が生じる可能性がある。
※この「関数の定義」の解説は、「Maple」の解説の一部です。
「関数の定義」を含む「Maple」の記事については、「Maple」の概要を参照ください。
関数の定義
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/03 09:19 UTC 版)
「Wolfram (プログラミング言語)」の記事における「関数の定義」の解説
以下は引数 x をとる関数 f の定義の例である。 f[x_] := x ^ 2 (*SetDelayed[f[Pattern[x,Blank[]],Power[x,2]*) :=は遅延代入演算子と呼ばれ、これにより割り当てられた値は、値が必要になるたびに再評価される。x_ はあらゆる式にマッチするパターンで x という名前で参照される。Wolfram言語では関数はパターンに関する変換規則として与えられる。
※この「関数の定義」の解説は、「Wolfram (プログラミング言語)」の解説の一部です。
「関数の定義」を含む「Wolfram (プログラミング言語)」の記事については、「Wolfram (プログラミング言語)」の概要を参照ください。
- 関数の定義のページへのリンク