2012年04月20日

関数型言語 Haskell

こんにちは、ミヤジーです。
最近Haskellという関数型言語の勉強を始めましたあせあせ(飛び散る汗)

Haskellとは・・・
http://ja.wikipedia.org/wiki/Haskell

関数型言語は他にも ML, OCaml, LISP 等があります。
C, C++, Java 等は手続き型言語に分類されます。

今まで手続き型言語でのプログラミングに慣れ親しんできた人には、
関数型言語のあまりに違いに驚くことでしょうexclamation×2


なんといっても衝撃的だったのが、特に純粋関数型言語であるHaskellは
変数に再代入ができないという事です!! (参照透過性といいます)
どうやってそれでプログラムを組むんだexclamation&question

どうですか? ワクワクしてきませんか ?
答えはとても長くなるので、下の参考書や解説サイトを読んでみて下さい!!


今、読んでいる参考書です。ぴかぴか(新しい)

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
http://www.amazon.co.jp/dp/4797336021

プログラミングHaskell
http://www.amazon.co.jp/dp/4274067815

Real World Haskell―実戦で学ぶ関数型言語プログラミング
http://www.amazon.co.jp/dp/4873114233

どれもお勧めです。上から順に読んでいくと理解しやすいと思います。手(チョキ)


Haskellを用いて開発されたゲームもいくつか存在します。あせあせ(飛び散る汗)
(関数型言語でゲームを作れるのか!! と驚きです。)


最後にHaskellのメリットをいくつか挙げると・・・

・並列処理アーキテクチャとの親和性が良い
・遅延評価(実際の計算を値が必要になるまで行わないことで高速)
・処理を非常に簡潔に記述できるものがある。
(例 クイックソート)
qsort [] = []
qsort (p:xs) = qsort [x | x <- xs, x < p] ++ [p] ++ qsort [x | x <- xs, x >= p]

等々あります。パンチ
みなさんもHaskellを学んでみては如何でしょうか?

posted by 管理人 at 20:39 | 書籍紹介