FP (プログラミング言語)
パラダイム | 関数型プログラミング |
---|---|
登場時期 | 1977年 |
設計者 | ジョン・バッカス |
方言 | FP84 |
影響を受けた言語 | APL[1] |
影響を与えた言語 | FL, Haskell, J |
FP(Function Programming の略)は、ジョン・バッカスが関数型プログラミングパラダイムを支持するために創り出したプログラミング言語の1つである。名前が付けられた変数を排除することができる。本言語は、バッカスによる1977年チューリング賞受賞講演「プログラミングはフォン・ノイマン・スタイルから解放されうるか?: 関数型プログラミング・スタイルとそのプログラム代数」において発表された。同講演の内容に基づいて発表された論文[2]は、関数型プログラミングの研究への関心をかき立て[3]、結局はバッカスが期待していた関数レベルパラダイムではなく、モダンな関数型言語につながった。FPそれ自身は学術目的以外では決して使われなかった[4]。バッカスは1980年代に後継のプログラミング言語FLを創り出したが、それも研究プロジェクトの域を出なかった。
概要
FPで書かれたプログラムがある別の値へと写像する値(value)は、列形式化(sequence formation)の下閉じている1個の集合(set)から構成される。
もし、x1, ..., xn が値であれば、列(sequence) 〈x1, ..., xn〉も値である。
これらの値は、真偽値、整数、実数、文字など任意のアトムの集合から組み立てることができる。
真偽値(boolean) | : {T, F} |
整数(integer) | : {0, 1, 2, ..., ∞} |
文字(character) | : {'a', 'b', 'c', ...} |
記号(symbol) | : {x, y, ...} |
⊥は未定義/不定(undefined)の値であることを表し、ボトム(bottom)という。列はボトムの性質を保存する(bottom-preserving)。
〈x1, ..., ⊥, ..., xn〉 = ⊥
FPで書かれたプログラムは、ある単一の値xそれぞれを別の値に写像する関数 (function) fである。関数fを値xに作用させた結果を f:x と表現する。
関数は、原始的、すなわち、FP 環境において提供されるか、またはプログラム形式化演算(program-forming operation(関数形式functional formとも呼ばれる))から構築されたか、である。
原始的関数の一例に定数関数(constant)があり、これはある値xを
- FP (programming language)のページへのリンク