宣言型プログラミングとは 命令型プログラミングと対比されるもう1つの大きな流れとして、ハードウエアとは独立した、数理論理学に根ざした流れが存在します。(純粋な)関数プログラミングや論理プログラミング、制約プログラミングなど、いろいろな理論に根ざしたプログラミングモデルが存在しますが、ここではそれらを総称して、宣言型プログラミングと呼ぶことにします。 宣言型プログラミングは、問題の解法、すなわちデータ構造とアルゴリズムを記述する命令型プログラミングとは対照的なプログラミングパラダイムです。宣言型プログラミングが記述するものは、問題の定義、すなわち解くべき問題の性質や、その際に満たすべき制約の記述です。 問題の定義は、問題の解法とはなるべく独立しているべきです。なぜならば、問題の効率的な解き方は、実行環境に依存したさまざまなやり方が考えられるからです。たとえ、ある環境では効率的な解き方であって