私が見ていたYouTubeビデオでは、命令型プログラミングと関数型プログラミングの違いについて、JavaとHaskellでそれぞれ1
to からtoまでの数を10
合計する方法を説明することで説明しました。
Javaでは、各ステップを明示的に記述し、各ステップの結果を変数に割り当てる必要があります-次のようなもの
int total = 0;
for (int i = 1; i <= 10; i++){
total = total + i;
}
return total;
Haskellでは、次のように簡単に言うことができます。
sum(1..10)
私の質問は次のとおりです。関数型言語のバックグラウンドで何かが起こっていることは明らかであり、その何かはある種の命令型プロセスでなければなりません。関数型言語は、実際には一種の命令型言語のAPIのようです。たとえばsum(int start, int end)
、Javaでメソッドを定義することにより、関数型言語の一部を作成できます。私は本当に新しいタイプの言語をすぐに作成しましたか、それとも命令命令をユーザーから隠す一連の命令メソッド呼び出しを定義しただけですか?
私が理解するのに苦労していることがはっきりしているといいのですが。