C++ より速くて、Perl より簡潔で、Python よりきちんとしていて、Ruby より柔軟で、C# より型が充実していて、Java より頑強で、PHP とは何の共通点もないものって?
YAPC::Asia 2006 Tokyo Sessions - Learning Haskell
最近、流行らしいので、とりあえず概要をつかんでおこうと思って、ちょっと勉強。
Haskell のお勉強 がわかりやすい。文法がちゃんと説明されているのでありがたい。
以下、ざっと Haskell の特徴概要まとめ。
- 純粋な関数型プログラミング言語
- 数値計算・探索・構文解析が簡単に実装できる
- IO 処理は苦手
- 値の定義を書くのが Haskell のプログラミング
- 代入というものがない
- パターンマッチングで分岐処理
- 補助関数で連立方程式っぽく記述
- 繰り返しは再帰で書く
- 遅延評価で無限の長さを持つデータを扱う
- 無名関数
- 強い型付け
- 部分適用: 関数に一部の引数を事前指定して新しい関数を作り出すことが可能
- 高階関数(higher order function): 関数を引数にとる関数 or 関数を戻り値とする関数
- Maybe 型: 値を返さないかもしれない関数 (でも Nothing を返すよ)
- IO では do 記法で順番に処理する
- モナド(Monad): 成功しないかもしれない計算を組み合わせる手法
- IORef で手続き型言語のように書ける (Haskell を使う意味がないカモ)
- 名前空間を Module 単位で分割
以下、参考サイトなど。
- 大いなる情報源: Haskell - HaskellWiki
- リファレンス: The Haskell 98 Language Report (Haskell 98 言語とライブラリ 改訂レポート)
- コンパイラ処理系: The Glasgow Haskell Compiler (GHC)
- インタプリタ処理系: Hugs 98
- 書籍では ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門 がわかりすくて良いとの評判。
tags: zlashdot Zura
Posted by NI-Lab. (@nilab)