関数型言語の勉強をしたいと思っています。SchemeとHaskellのどちらがいいですか?判断基準としては、


1.実行速度がいいのは?(Haskellのコンパイラは使い物にならないと聞いたことがある)
2.AIを作るならどっち?
3.コミュニティや資料の充実度

ゲーム作りながら勉強したいと思ってるので結構実行速度が気になります。(一応作れるらしいです。 ref: http://www.geocities.jp/takascience/haskell/monadius_ja.html

他の関数型言語でも、上記の判断基準を満たすものであれば教えてください。

回答の条件
  • 1人2回まで
  • 登録:2006/05/14 06:37:28
  • 終了:2006/05/21 06:40:02

回答(2件)

id:mroom No.1

mroom回答回数20ベストアンサー獲得回数22006/05/15 18:17:29

ポイント35pt

ちょっと乱暴ですが、

関数プログラミングという概念に興味があるならHaskell、

AIを学びたいならSchemeをお勧めします。

SchemeはLISPという言語の一種で、LISPは1960年代に人工知能(記号処理)のための言語として生まれたという歴史があります。このため、LISPを使って説明されている教科書が多いです。たとえば、

http://www.amazon.co.jp/exec/obidos/ASIN/4627836708/503-4711384-...

また、Schemeは最近はスクリプト言語として注目されているので、ユーザもそこそこいるのではないかと思います。ただし、

  • Schemeに限らずLISP一般にいえることですが、高速なコードを生成するフリーのコンパイラが無いため、速度を求める場合にはAllegro Common Lispなどの商用のコンパイラを購入する必要があります。また、
  • LISPのプログラムを高速に動作させるために、ループや破壊的代入など、関数型言語らしくないプログララミングがよく行われます。このため、LISPは関数型言語ではないと言われることも多いです。

一方、Haskellは純粋関数型言語の研究者によって作られた言語で、

  • 高階関数や、折り畳みなどを用いた標準的(?)関数プログラミングの機能に加え、遅延評価やモナドなどの面白い仕組みが導入されています。

このため、ある意味数学的な面白さがあります。ただし、Haskellでは関数型プログラミングしかできないので、普段CやJavaに慣れている人は不自由を感じるかもしれません。

さらに、関数型言語としてはOCamlという言語が最近広く使われるようになりました。国内の大学の講義で使った講義ノートなども手にはいるようです。関数プログラミングらしくない書き方もできるので、個人的にはHaskellよりもOCamlのほうが好みです。

% % %

関数プログラミングとAIのどっちに比重があるのか、それを学んで何に使うかを明確にすると他の回答者の方も答えやすいのではないかと思います。

id:Maaboo

なるほどー。分かりやすい説明ありがとうございます。

関数型言語を今から始めようって人間なんでいろいろと不自由かけてすいません。とりあえず、AIを作りたいと思っているので、AI比重でお願いします。

2006/05/16 07:56:23
id:ekusutasii No.2

ekusutasii回答回数224ベストアンサー獲得回数02006/05/18 18:03:53

ポイント35pt

そういう質問頭のいい人がよくしますよね。字面からそれを伝えるあなたはほんとに頭がいいとわたしは見た。

id:Maaboo

ありがとうございます。

2006/05/19 15:42:56

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません