私は宣言型プログラミングと命令型プログラミングの定義を探してウェブを検索してきました。しかし、私が見つけたリソースのいくつかで使用されている言語は、たとえばウィキペディアこのテーマについて何らかの視点を与えてくれるような実際の例を誰か教えてくれませんか (おそらく C# で)?
ベストアンサー1
宣言型プログラミングと命令型プログラミングの優れた C# の例は LINQ です。
命令型プログラミングでは、何を起こしたいかを段階的にコンパイラーに伝えます。
たとえば、このコレクションから始めて、奇数を選択してみましょう。
List<int> collection = new List<int> { 1, 2, 3, 4, 5 };
命令型プログラミングでは、これをステップ実行して、何が必要かを決定します。
List<int> results = new List<int>();
foreach(var num in collection)
{
if (num % 2 != 0)
results.Add(num);
}
ここでは、次のように言っています。
- 結果コレクションを作成する
- コレクション内の各番号を順に確認します
- 数字をチェックし、奇数の場合は結果に追加します
一方、宣言型プログラミングでは、何を望んでいるかを説明するコードを記述しますが、必ずしもそれを実現する方法を記述する必要はありません (望ましい結果を宣言しますが、手順は記述しません)。
var results = collection.Where( num => num % 2 != 0);
ここでは、「コレクションをステップ実行します。この項目をチェックし、奇数の場合は結果コレクションに追加します。」ではなく、「奇数の部分をすべて提供してください。」と言っています。
多くの場合、コードも両方のデザインが混在するため、必ずしも白黒はっきりしているわけではありません。