関数型言語とオブジェクト指向言語の違い

関数型言語だと「データ構造を定義して、それに対する操作を定義」する。これは「宣言的なプログラミング」と言うやつじゃないかと思う。なんとなく、これは「構文を定義してそれに意味論を定義する」という理論の世界の手法と似ている気がする。

OOPLだと「オブジェクトにそのまま操作を定義」しちゃう。


この発想の転換が難しい。

どちらが素直かと言われれば、宣言的なやつだと思う。ネイティブなプログラミング言語がなにか、ということに関連するんだろうけど。