2011-01-15 12 views
1

機能的で純粋なプログラミング言語は何ですか?機能的で純粋なプログラミング言語

+1

この質問に対する回答は役に立ちます:http://stackoverflow.com/questions/4382223/pure-functional-language-haskell –

+1

また、[Wikipediaのカテゴリ別プログラミング言語一覧の機能言語セクション]( http://en.wikipedia.org/wiki/List_of_programming_languages_by_category#Functional_languages)。 – ephemient

答えて

4

おそらく大部分がありますが、ほとんどの人が知っている主要なものはHaskellです。 http://www.cse.chalmers.se/~ulfn/papers/afp08/tutorial.pdf

により依存型にいくつかの機能は、Haskellのような他の言語で定義することができなかったように定義することができます。

いくつか他の人には素敵な関数型プログラミング言語はAgdaでMirandaClean

+0

ちょうどメモとして、Mirandaは本質的にこの時点では無効であり、Haskellに取って代わられている。クリーンはまだ活発な開発中です。 – sclv

+0

ミランダはまだ機能的言語の実装に関するSPJの論文で使用されています:)。私は、ミランダの大文字の使用をそんなに(あるいはそれだけでも)嫌うため、論文全体を書き直す気がします。 – alternative

2

です。例えば。それらの引数と同じ長さのベクトルを返す関数の型(Vec n - > Vec n)です。たとえばsortはこの型です。 [私はいくつかの論文がそれがハケルより純粋だと考えていると信じていました。編集前に]

agdaの利点は、souceコードがhaskellと非常によく似ていることです。さらに、任意のhaskell関数を呼び出して使用することができます。欠点は主に標準ライブラリがあまりにも頻繁に変更されることです。

ただ、リストのソースコードを見て:もちろん http://www.cse.chalmers.se/~nad/listings/lib-0.4/Data.List.html#209

カレー・ハワードのためにウィキペディアになどのCoQ、警句、

およびリファレンスのような類似した関数型プログラミング言語があります
http://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence

依存型に関するリンク(およびいくつかのagdaリンクが含まれます): http://www.reddit.com/r/dependent_types/

+0

Agdaは、依存型プログラミング言語/定理証明者です。主に研究のためのものであり、意味のある意味でハスケルより純粋ではありません。 Epigramはagdaに似ていますが、現時点ではうまく実装されていない点が異なります.Epigram 2の開発は進行中の研究課題です。 Coqは言語ではありませんが(いくつか抽出することはできますが)、単に定理証明者です。 – sclv

+0

Hello Sclv。投稿の一部を変更しました。 Coqに関しては、Wiki pediaによると: "Coqは依存型プログラミング言語を実装しています[1]"。ウィキペディアが間違っているか、私のところに誤解があります。はい、Agdaは主に研究の対象ですが、それはhaskellでも言えます。私は、agdaの発展が続くなら、大きな関心があると思う。そして、純粋な関数型プログラミング言語の1つとして挙げられるべきです。 – mrsteve

1

ラムダ計算とSK-計算は、純粋に機能的な2つの非常に重要なプログラミング言語です。

関連する問題