情報技術 > プログラミング > Haskell

Wikipedia
Wikipedia
ウィキペディアHaskellの記事があります。

Haskell :: Functional Programming with Types 編集

 

Haskell関数型言語であり、他のプログラミング言語を触ったことのある読者なら、Haskellのやり方は他の言語とは多少異なっていることが分かるでしょう。

Haskellの独自性は二つあります。一つは、「純粋」関数型言語であることです。純粋関数型言語では、同じ関数を同じ引数で呼び出した場合、必ず同じ戻り値になることが保証されます。二つ目は、Haskellが極めて現代的な型理論を備えていることです。Haskellでは、型クラスや代数的データ型などの型を扱うことができます。これらの難解な概念は、今は全く理解できないかもしれませんが、この本を読み終えた後には、より身近なものに感じられるでしょう。

さて、Haskellerたちはこの言語のどこに魅力を感じているのでしょうか。ユニークで新しい感覚を得られるからでしょうか。しかし、Haskellの最も優れた性質は、純粋関数のみによって書かれていることで、プログラムを容易に理解でき、プログラムの正しさを簡単に示せることです。さらに、優れた型システムは、誤ったプログラムの修正にも役立ちます。単純なミスだけでなく、根の深い、厄介な問題の解決にも役立つのです。

この本では、Haskellおよびプログラミング一般に関するトピックを扱います。熟練プログラマの読者は、最初の間は少し辛抱して読み進めていただきたいです。Haskellは、読者が慣れ親しんできたであろう他の言語のほとんどと全く異なっており、他の言語での積み上げてきた習慣がかえって理解の妨げになるかもしれません。Haskellの仕組みは単純ですが、他の言語とは異なっているのです。他の言語でのプログラミング経験のある読者は、以前とは全く異なる世界、複雑な対象への巧みなプログラミングと、関数型プログラマの数学的思考法の世界を探検するつもりでいてほしい。

はじめに 編集

この本は3つの部分、初級教程、上級教程、実用プログラミングのセクションからできている。実用プログラミングの項目では、実際の場面で使うプログラミングの方法について解説する。これは初級教程だけの知識で読むことができる。

初級教程 編集

このセクションでは、Haskellの最も基本的な部分と、頻繁に利用するライブラリを紹介する。この教程によって、単純なプログラムを書くことができるようになる。ほとんどの章には演習問題があり、新しく学んだ知識について練習することができる。解答つき。

Haskellの基本 編集

Haskell - 初級 編集

Haskell - 中級 編集


モナド 編集

上級教程 編集

このセクションでは、関数型プログラミング言語Haskellの扱う様々な理論的概念を紹介する。型理論、データ構造の解説に加えて、プログラムの並行性といった実用的な議論もここで行う。

Haskell - 上級 編集


型のいろいろ 編集


より広い理論 編集


Haskellの高速化 編集


Haskellで実用プログラミング 編集

このセクションでは、より実際の問題をプログラミングする場面で必要になる、標準ライブラリの使い方やGUIの作り方、データベースへの接続といった内容を解説する。

Libraries Reference 編集

General Practices 編集

Specialised Tasks 編集

Appendices 編集

Answers to exercises
Authors and Acknowledgements
Experimental Modules
List of topics
Notes for contributors
Syntactic sugar
Templates for the Haskell wikibook
To do

Alternate tutorials 編集

  • Haskell Meta-tutorial - the tutorial to find other tutorials
  • 48時間でSchemeを書こう - (imported) An alternate approach to teaching Haskell (and perhaps Scheme), aimed at a more advanced audience (though not necessarily one that knows how to program!)
  • Yet Another Haskell Tutorial - (imported) is aimed at beginners and takes a practical approach to things. It is now part of this wikibook and will eventually be mixed in to the main text.

Additional resources 編集