クラスを使用したOOPと比較した関数型プログラミング
私は最近、関数型プログラミングの概念のいくつかに興味を持っています。しばらくの間、OOPを使用しました。OOPでかなり複雑なアプリを作成する方法を見ることができます。各オブジェクトは、そのオブジェクトが行うことを行う方法を知っています。または、親クラスでも同様です。だから私は単にPerson().speak()人に話させるように言うことができます。 しかし、関数型プログラミングで同様のことを行うにはどうすればよいですか?関数がどのようにファーストクラスのアイテムであるかがわかります。しかし、その機能は特定の1つのことだけを行います。私は単にsay()周りに浮かぶメソッドを持ち、それを同等のPerson()引数で呼び出すので、何か言っていることを知っていますか? だから私は簡単なことを見ることができます、機能プログラミングでOOPとオブジェクトの比較をどのように行うのですか?それで、コードベースをモジュール化して整理できますか? 参考までに、OOPでの私の主な経験は、Python、PHP、およびいくつかのC#です。私が見ている機能的な機能を持つ言語は、ScalaとHaskellです。私はScalaに傾いていますが。 基本的な例(Python): Animal(object): def say(self, what): print(what) Dog(Animal): def say(self, what): super().say('dog barks: {0}'.format(what)) Cat(Animal): def say(self, what): super().say('cat meows: {0}'.format(what)) dog = Dog() cat = Cat() dog.say('ruff') cat.say('purr')