オブジェクト指向(OOP)プログラミングと機能(FP)プログラミングに関する無限の論争が存在する理由はわかりません。 これらの種類のことは人間の理解を超えているようであり、あなたはそれらについて無限に議論することができます。 プログラミング言語を長年研究してきましたが、明確な答えを見つけましたが、これらの問題について議論するのは無意味であることがよくあります。
要するに、OOPとFIの両方を使用すると、極端に使用すると効果がなくなります。 OOPの極端なところは、「何でもオブジェクト」であるという考えです(純粋なOP)。 FPの極端な例として、純粋な関数型プログラミング言語を検討できます。
OOPの何が問題なのか
“” - . , “ — ”. , :
, . ., Python Scala . Python
__call__
. Scala, —
apply
. , , . , , . ,
__call__
apply
, “ ”. Python Scala , “”,
__call__
apply
, “”. , , , , “ ”.
- . Java, . , “”, , , . , " " Java. , .
, , , . , . ,
«What is a Purely Functional Language» Amr Sabry ( PhD). , , :
, . ., - , ( , , ). - , “ ” . . — . , . , . , ? Haskell.
, . , , . “ ” Java. , Haskell? “ ----”. , Amr Sabry ( PhD) -
.
miniKanren , , . , , Haskell. , , Amr Sabry, , . , , - . , Scheme.
, , “” . , ? , . , , . , , . . , , , , . , , :
int f(int x) {
int y = 0;
int z = 0;
y = 2 * x;
z = y + 1;
return z / 3;
}
. - , . , , .
, , . , , . . “ ”. . “ ”, , , !
“Function and concept”, , , . , , , . , .
- , . , , , , . , . , .
. .