LT駆動開発16で「戻り値の型によって処理を変える」をというLTをした。

要するに自分の中で型クラスのことがそこそこすっきりしたので喋ってみた。 完全な準備不足でもっと丁寧につくりたい部分があったけど雑に説明してしまってるところがある。

戯言

いまだにアドホックという言葉がよくわかっておらず、つらい。 型クラスを使うとアドホック多相というのが実現できるらしい。

アドホック多相というのは、分岐処理の自動生成ができる機能とも言えさうだ。 また、クラスがメソッドをグルーピングする機能と見なした場合、型クラスをつかうとより柔軟にグルーピングできる機能とも言えそうだ。

その辺の話をうまく図示したいけど、考える時間が足りなかったので、また今度考えてみたい。

型推論や型を指定することで関数の戻り値の型が決定すると実行される関数が決まる。 戻り値だけでなく、引数の型なんかでも決めることができる。 オプジェクト指向では、レシーバで決まったり、オーバロードで呼び出しする処理を変えたりできる。

オブジェクト指向だとか、関数型だとかではなく、言語がもってる機能の違いなんだよなぁ、と思ったりしなくもないけど真面目に考えてない。

LT中に登場した言語がHaskell, Ruby, Python, Perl, ScalaだったけどOCamlのことをあまり知らないので、もっと勉強しようと思った。

スライド中のコードはGistにアップしておきます。(実行例かきわすれてる…)