「関数 (プログラミング)」の版間の差分
表示
削除された内容 追加された内容
Fryed-peach (会話 | 投稿記録) m サブルーチン との統合提案 |
Fryed-peach (会話 | 投稿記録) サブルーチン へ統合 |
||
1行目: | 1行目: | ||
#REDIRECT [[サブルーチン]] |
|||
'''関数'''(かんすう)とは[[サブルーチン]]の一種で、特にある値を[[引数]]として受け取り、その結果たる値を返す性質をもつものを指す。このとき返される値を'''戻り値'''(もどりち)や'''返り値'''(かえりち)のように呼ぶ。 |
|||
引数としてとりうる値の集合から、戻り値としてとりうる値の集合への[[写像]]のように捉えることができるため関数と呼ばれるが、次の点で数学の[[関数 (数学)|関数]]とは異なる。 |
|||
* 引数が同じでも状況に応じて戻り値が異なる(状態を持つ) |
|||
* 関数の処理の実行によってシステムに変化が発生する(副作用を持つ) |
|||
* 戻り値が存在しない場合がある |
|||
== 各種[[プログラミング言語]]における関数 == |
|||
* [[Microsoft Excel|Excel]]での関数は、主に、計算をしたり、データの検索や集計をしたり、表示を変換したりする。合計値を求めるSUM関数や、平均値を求めるAVERAGE関数など、100を超える関数が存在する。 |
|||
* [[C言語|C]]では、メインルーチン、サブルーチン問わずすべての処理単位は関数を定義する形で記述される。すべての関数は戻り値の[[データ型|型]]を指定しなければならないため、戻り値が存在しない場合、戻り値がないことを表す特別な型であるvoid型が利用される。 |
|||
* [[Pascal]]では、戻り値が存在するサブルーチンだけを関数と呼び、戻り値が存在しないものは手続きと呼ぶ。関数を記述する場合はfunction、手続きの場合procedureという[[予約語]]が用いられる。 |
|||
* 古典的な[[BASIC]]では、関数は言語仕様に組み込まれたものを利用するだけにとどまり、ユーザによる関数の追加、拡張はDEFFN命令などごく限られた範囲でしか行えない。 |
|||
* [[Java言語]]等、[[オブジェクト指向プログラミング|オブジェクト指向プログラミング言語]]では関数の仕組みを拡張し、[[メソッド]](特定のオブジェクトあるいは[[クラス (コンピュータ)|クラス]]に属する関数)という仕組みを用いる。 |
|||
* [[Scheme]]では関数ではなくて手続きと呼ばれる。[[入出力|IO]]処理など、手続きが値を返すとは限らないからである。なお[[Common Lisp]]では関数と呼ばれる。 |
|||
* 純粋な[[関数型言語]]における関数は、状態や[[副作用 (プログラム)|副作用]]などをもたず、数学の[[関数 (数学)|関数]]に近い性質を持つ。 |
|||
[[Category:プログラミング|かんすう]] |
|||
[[Category:プログラミング言語の構文|かんすう]] |
|||
[[bs:Podrutina]] |
|||
[[cs:Funkce (programování)]] |
|||
[[da:Funktion (programmering)]] |
|||
[[de:Funktion (Programmierung)]] |
|||
[[en:Subroutine]] |
|||
[[es:Subrutina]] |
|||
[[et:Funktsioon (programmeerimine)]] |
|||
[[fa:زیرروال]] |
|||
[[fi:Aliohjelma]] |
|||
[[fr:Fonction (informatique)]] |
|||
[[he:פונקציה (תכנות)]] |
|||
[[is:Undirforrit]] |
|||
[[it:Funzione (informatica)]] |
|||
[[nl:Subprogramma]] |
|||
[[pl:Podprogram]] |
|||
[[pt:Subrotina]] |
|||
[[ru:Функция (программирование)]] |
|||
[[sv:Subrutin]] |
|||
[[uk:Підпрограма]] |
|||
[[vi:Chương trình con]] |
|||
[[zh:子程序]] |
2007年2月16日 (金) 02:08時点における最新版
転送先: