おおっ、弾さん、ありがと
⇒404 Blog Not Found:Typeとは俺のことかとClass言い
このあたりをきちんとかつべたに書かれたものがあるといいのだろうなと思う。
そして、型がある言語における関数が何かといえば、「自分がどんなデータを受け付けるのかを知っているサブルーチン」ということになる。CからHaskellまで、これに例外はない。
このあたりは実に実感的にわかる。というか、昔(私のいう昔はマジで昔だが)、仕様書は関数であり、なにを見るかというと実際には引数のタイプだったわけだ。つまり、かつては、プログラマがどんなデータを与えるか教えていた」べたサブルーチン(あるいは関数)だった。
また、これも同じなのだが。
結論としては、オブジェクト指向に見える手続き型言語(i.e. perl)も、手続き型言語のように見える(魅せることが出来る)オブジェクト指向言語(i.e. ruby)もどちらも可能で、どちらも実はそれほど違いはないということ。
ただ、このあたりはちょっと違和感が依然残るところで、それはちと違うのではないかと思うし、ちと事例もないわけでもないのだが、自分が依然しっくりしてない。これがUMLとかユースケースとかみたいに天の声があるとなんかわかった気になるだけで、なんか、嘘くさいというか、もわっとする。ま、現実問題になんら問題はないので、ダイヤ異常なし。
あと余談だが、このエントリで弾さんがなぜPerlにこだわるかというか、Perl6にこだわるかわかったようには思ったというかそっちはけっこうしっくりきた。
私がPHPを仕事で使う気になれないのは、21世紀になってもAnimaliaChordataMammaliaPrimataHomonidaeHomoSapiens()みたいなことを平気で強いるからである。
とはいえ、PHPでもそうとばかりはないでしょとも思うし、なんつうか、私のようなものが言うべきじゃないが、PHPっていうのは一種のマクロ用途になりつつあるので、実際にはプログラマがPHPに触ることはなくなるんじゃないか&でもC++プログラマはいつまでも永遠にみたいにPHPも残るのだろう。
ま、なんかこんなオチありかよだが、クラスっていうのは、データ型自動処理サブルーチンパッケージってつうことで。