型多相性(ポリモーフィズム)について調べてみた
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という関数言語をやるに当たって避けては通れない、関数についての一部に触れてみましたが、書いていることが全てあっている自信は正直ないです・・・。間違っていたら指摘をお願いします。