手続き型プログラミングと関数型プログラミングの違いは何ですか? [closed] 質問する

手続き型プログラミングと関数型プログラミングの違いは何ですか? [closed] 質問する

私は両方のWikipediaの記事を読みました手続き型プログラミングそして関数型プログラミングですが、まだ少し混乱しています。誰か核心まで説明してもらえませんか?

ベストアンサー1

関数型言語では(理想的には)数学関数、つまりn 個の引数を取り値を返す関数を記述できます。プログラムが実行されると、この関数は必要に応じて論理的に評価されます。1

一方、手続き型言語は、一連の連続したステップを実行します。(連続ロジックを関数型ロジックに変換する方法があります。継続渡しスタイル

その結果、純粋に機能的なプログラムは入力に対して常に同じ値を生成し、評価の順序は明確に定義されません。つまり、ユーザー入力やランダムな値などの不確実な値を純粋に機能的な言語でモデル化することは困難です。


1この回答の他の部分と同様に、これは一般論です。計算が呼び出されたときに順番に評価するのではなく、結果が必要になったときに計算を評価するこの特性は、「遅延」として知られています。すべての関数型言語が実際には普遍的に遅延しているわけではなく、遅延は関数型プログラミングに限定されているわけではありません。むしろ、ここでの説明は、異なるプログラミング スタイルについて考えるための「精神的な枠組み」を提供します。これらのプログラミング スタイルは、明確に区別された反対のカテゴリではなく、流動的なアイデアです。

おすすめ記事