オブジェクト指向プログラミングでは、データを保存する「フィールド」と、それらのフィールドを操作する「メソッド」でオブジェクトを定義します。オブジェクト指向プログラムは通常、命令的に定式化され、計算を完了するための段階的な命令を定義します。

機能プログラミングでは、入力の関数として出力を数学的に書き込みます。機能プログラムは通常、変数への書き込みなどの「副作用」を持たない「純粋な」関数の観点から定式化されます。
In object oriented programming, you define objects with "fields" that store data, and "methods" that manipulate those fields. An object oriented program is usually formulated imperatively, defining step by step instructions to complete the calculation.

In functional programming, you write the output mathematically, as a function of the inputs. A functional program is usually formulated in terms of "pure" functions which do not have "side effects" like writing to variables.