オブジェクト指向プログラミングが好きだ。関数型プログラミングが好きだ。 オブジェクト指向プログラミングオブジェクト指向プログラミングは、コンテナの一般性を確保している点で優れている。 データと振る舞いをコンテナとしてまとめることで、プログラムをわかりやすく整理するという特徴がある。 特定のコンテナ自体を値として別のコンテナに収めたり、操作に対してパラメータ(引数)として受け渡すことでプログラムを表現する。 そのコンテナをオブジェクトって呼んでいる。 データと操作をオブジェクトとしてまとめる利点は、オブジェクトそのものに責務を定義できるからだ。 オブジェクトはそもそも自身の型を知っているので、オブジェクト内のデータによってその状態を識別できる。 カプセル化された実装によって、果たすべき機能が適切に表現される。ただし、オブジェクトで状態を扱うと 必ず副作用を巻き込んでしまうので「脆さ」が見え隠