宣言型プログラミング
宣言型プログラミングは、現行式枠外の外部状態への代入コマンド、および外部状態の現行式への影響(副作用)といった命令的な性質を持たないパラダイムとして定義されている。命令的性質のステートメントに対して、宣言的なプログラム基本文は式とされる。
コマンドと副作用を持つ命令的なオペレータ(手続き・関数・ルーチン)は、計算内容のリスト化とステップ単位解釈が必要になるので、これがhow to accomplish it(どうなすべきか)とされる。
コマンドと副作用を持たない宣言的なオペレータは、その定義だけで計算内容を把握できるので、これがwhat to accomplish it(何をなすべきか)とされる。命令的オペレータを用いずに、宣言的オペレータを用いることが即ち宣言的なプログラムになる。式はオペレータ、オペランド、他の式、自己再帰式などの組み合わせになる。
宣言的パラダイムにあるべき特徴は以下のようになる。
計算を主に表示的意味論で記述する高水準言語
参照透過を担保できるように表現された副作用
計算そのものを計算対象にできるという高階なプログラム
数理論理学に準拠したプログラム
宣言的オペレータの性質である参照透過性は、同じ引数に対するオペレータの動作と返り値が不変であることを意味する。
式は単体で評価されるほか、引数に適用されて評価値(返り値)になる。