auの日記

プログラミング初心者の日記。(auはハンドルネームです)

型多相性(ポリモーフィズム)について調べてみた

auです。

型多相性(ポリモーフィズム)という用語があるのですが、何のことかよく分からなかったので調べてみました。

型多相性とは

型多相性とは、プログラミングの型の性質を表し、複数の型を共通に扱える性質のことです。

この型多相性を持った関数のことを多相関数と言います。

# let id foo = foo;;
val id : 'a -> 'a = <fun>
# id "aa";;
- : string = "aa"
# id 123;;
- : int = 123
# id [1;2;3];;
- : int list = [1; 2; 3]

このidという多相関数idの引数fooは、様々な型を扱うことができます。ちなみにOCamlでは、型推論によって、C言語のように

int i;

のように型を明示しなくても、勝手に適切な型を付けてくれます。

OCamlの場合「'a(アルファ)」が型多相性を持った型となります。

OCamlという関数言語をやるに当たって避けては通れない、関数についての一部に触れてみましたが、書いていることが全てあっている自信は正直ないです・・・。間違っていたら指摘をお願いします。