いままでずっと手続き型のプログラミング言語 (C とか Java とか Ruby とか) で生活してきた人間が突然 Haskell を使うとどう思うのか、 という観点を第一に書いています。
「はすける」みたいです。 ちなみに論理学者の Haskell B. Curry に由来するそうです。 「カリー化」の Curry もこの人の名前から来てます。
そうです。
関数がプログラミングの中心にあるような言語のことです。 定義は人によってズレがありますが、 少なくとも C や Java は関数型ではなく、Haskell は確実に関数型であり、 ML も関数型であるということに異を唱える人はほとんどいません。 Lisp を関数型に入れるかどうかは人によって違うようです。
副作用のあるコードをいきなり書けないところです。 書けないわけではありません。 ここを深くつっこむとわけがわからなくなるうえに宗教戦争が勃発するので、 あまりつっこまないでください。
委員会があるみたいです。
「よい」の定義によります。が、一般的な違いを言うならば、 副作用のあるコードは ML のほうが気軽に書けること、 Haskell は非正格 (non-strict) である、という二点が挙げられます。
プログラムがどこから評価されるか決まってない、という性質です。
書けるんです。そこが面白いとこです。
Common Lisp プログラマと Scheme プログラマの関係と同じくらい?
1000 人以下かなあ? (2005 年現在)
GHC (http://www.haskell.org/ghc/) で決まりでしょう。
Haskell98 というのが最新です。
あんまりありません。 HaskellLinks にライブラリ集へのリンクがあるので見てください。
hierarchical library という階層化されたやつが新しいもののようですね。
なさげです。
簡単な UNIX コマンドを Haskell で書いた例が UnixCommandsInHaskell にあります。 またコンパイラの GHC は Haskell 自身で書いてあります。
あまり答えたくありません。 この問いに答えてそれでわかる人は聞くまでもなくわかるし、 それでわからない人には意味がないからです。 モナドに関しては、「…とは何か」と考えるよりも 「どう使うのか」を考えるほうが幸せになれます。
まず、リストはモナドです。 Maybe というデータもモナドです。 それから、パーサコンビネータと言って、 パーサをモナドで表現する使いかたがあります。 モナドについて考えるときはこの三つを中心に理解していくのがわかりやすいと思います。
そして最後に IO モナドがあります。 これは I/O をするときなど、副作用が発生する場合に使います。
だからつっこんじゃだめなんだってば。
おもいきり簡単に言うと、副作用が起きないという性質です。
いいという人もいますし、そのほうがいいプログラムもあるのです。
基本的にはそうです。 ただし、IO モナドを使って一部だけ変更できるデータもあります。
そういうプログラムには Haskell は向いていないかもしれません。 しかしそういうプログラムばかりではありませんし、 ハードウェアが速くなれば問題にならないかもしれません。
日本語のメーリングリストがあります。 http://www.sampou.org/haskell/ の案内を見てください。
動かすプログラムと、「速い」の基準によります。
しかし一般的には、カリカリにチューンした C よりは遅く、 Perl や Ruby などのインタプリタよりは速い、という感じです。
O'Haskell というオブジェクト指向拡張があるみたいです。 -> http://www.math.chalmers.se/~nordland/ohaskell/
激しく同意! ぜひ自分でもサイトを作ってください。
関数型ってなんとなくかっこよさそうだから。
心は Ruby なのでよいのです