Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Haskell完全マスター:純粋関数型プログラミング入門
203 students

Haskell完全マスター:純粋関数型プログラミング入門

歴史と思想から型クラス・モナド・並行性まで、GHCで学ぶ実践的な関数型プログラミングの全体像
Last updated 7/2026
Japanese
Japanese [Auto],

What you'll learn

  • Haskellの歴史・思想・生態系を俯瞰し、他の関数型言語との位置関係を説明できる
  • ghci、Cabal、Stack、Hackage/Stackageを使いこなしてプロジェクトを構築できる
  • let/where、パターンマッチ、ガード、case式を使い分けて宣言的なコードを書ける
  • カリー化、部分適用、高階関数、関数合成を駆使して再利用性の高い関数を設計できる
  • data、newtype、レコード構文、Maybe/Eitherで安全なドメイン型を表現できる
  • Functor、Applicative、Monadの階層を理解し、do記法とIOで副作用を型で隔離できる
  • 型クラスを自作し、derivingと制約付き多相で汎用的なAPIを設計できる
  • 遅延評価の利点と落とし穴(スペースリーク)を把握し、正格性で性能を制御できる
  • forkIO、MVar、async、STMを用いて安全な並行プログラムを記述できる
  • bracketとwithFileでリソースを確実に解放する例外安全なコードが書ける

Course content

7 sections48 lectures4h 43m total length
  • Haskell誕生の物語 — 1987年から現在まで4:34

    1987年にオレゴン州ポートランドで関数型プログラミング言語会議の場でHaskellが産声を上げてから現在に至るまでの物語を、年表に沿ってたどります。遅延評価型言語の系譜、Haskell委員会が標準言語を作るに至った経緯、論理学者ハスケル・カリーにちなんだ命名の由来、そしてHaskell 98から2010、現在のGHC拡張中心の進化スタイルへと続く流れがつかめます。

  • Hello, Haskell — putStrLnと最初のmain5:39

    main関数とputStrLnを使った、初めての実行可能なHaskellプログラムを書きます。mainがIOアクションであること、たった二行の最小形を確認し、ghciでの即時評価と.hsファイルのコンパイル実行という二つのワークフローを実際のターミナル出力で体験したうえで、do記法で複数のメッセージを順に並べ、最後に出力をあなた自身のキャラクター宣言に書き換えてみます。

  • letとwhere — Haskellにおける「変数」の正体5:18

    Haskellには再代入できる変数が存在しないという事実を起点に、letバインディングとwhere節で局所的に名前を導入する方法を学びます。同じ計算を二通りで書き比べることで、プログラムを「評価順序」ではなく「定義の集まり」として捉える視点に切り替わり、最後に複数の値を組み立てる計算をletとwhereの両方で書く練習で手になじませます。

  • 基本型めぐり — Int、Integer、Double、Char、Bool7:22

    ghciの:typeコマンドを使いながら、Haskellの基本型を一つずつ確認していきます。固定幅のIntと任意精度のIntegerの違い、浮動小数のDouble、単一文字のChar、真偽値のBool、そしてStringが[Char]の糖衣構文であることを評価結果と一緒に見て、最後にこれら全部の型を一画面のステータス表示にまとめてみます。

  • 型注釈と型推論 — :: の読み方8:02

    値や関数に明示的に型を書く::記法と、Hindley-Milner型推論によって型注釈を省ける世界の、両方を行き来します。同じ関数を型注釈ありとなしで定義し、ghciで推論結果を表示させて見比べ、わざとあいまいな式を書いて推論が失敗する瞬間を観察し、それを型注釈で解消する練習に取り組みます。

Requirements

  • いずれかのプログラミング言語での基本的な開発経験(変数、関数、制御構造)
  • コマンドラインでのファイル操作とプログラム実行ができること
  • テキストエディタまたはIDEでソースコードを編集できる環境
  • 抽象的な概念や数学的な記法に粘り強く向き合う知的体力
  • GHCとghciをローカルにインストールできるPC(Windows/macOS/Linux)

Description

This course contains the use of artificial intelligence.

関数型プログラミングは、もはやアカデミアの実験ではありません。金融、コンパイラ、形式手法、DSL設計といった「絶対に間違えられない」領域で、Haskellは静かに、しかし確実に採用を広げてきました。純粋性、強い型付け、遅延評価という三つの柱は、バグの多くをコンパイル時に弾き飛ばし、保守性の高いコードを生み出します。AIが大量のコードを書く時代だからこそ、「壊れにくい設計」を型で表現できる能力は、これまで以上に希少な武器になります。本コースは、その武器をあなたの手に渡すために設計されました。

本コースは、Haskellの全体像を歴史と思想から実装の細部まで案内します。学び方には一貫した流れがあります。各コーディングセクションは、まずそのテーマの背景・歴史・「なぜそう設計されたのか」を語る短い概念講義で幕を開け、その直後に手を動かすハンズオンの実装講義が続きます。こうしてHaskell誕生の物語、設計哲学、弱点と批判、ツール生態系、採用事例、関数型言語の比較地図といった「文脈」を要所要所で押さえながら、ghciでの最初の一歩、let/where、基本型、型注釈、パターンマッチ、ガード、case式、関数の第一級性、カリー化、高階関数、再帰、リスト内包表記、無限リスト、タプル、文字列、独自型(data/type/newtype)、Maybe/Either、そして型クラスの自作、deriving、制約付き多相、do記法とIO、エラー処理、forkIO/MVar、async/STM、bracketによるリソース管理までを、概念とコードを交互に織り上げながら積み上げていきます。そしてコースの締めくくりには、モナドの直観、GHC Coreと遅延評価の実装、スペースリークと正格性、関数型デザインパターン、応用領域といった、より深い概念講義をまとめて配置し、それまで書いてきたコードの裏側にある原理を一本の糸で貫きます。

対象は、他言語の経験を持ち関数型パラダイムに本気で踏み込みたいエンジニア、型システムを武器にしたい設計者、CSの理論的基盤を実装で確かめたい学生・研究者です。前提は、いずれかの言語での基本的なプログラミング経験、コマンドラインの操作、テキストエディタの使用、そして抽象概念を粘り強く追う知的体力です。修了時には、Haskellで小〜中規模のプログラムを設計・実装し、型でドメインを表現し、モナドで副作用を制御し、並行プログラムを安全に書けるようになります。

類書との違いは、構文の羅列ではなく「なぜそう設計されたのか」を歴史・哲学・実装の三層で語り抜く点にあります。Haskellの弱点や採用障壁も正面から扱い、現実の選択肢として評価できる目を養います。コードを書くだけでなく、関数型の思考そのものを身につけたいなら、今すぐ受講を始めてください。

Who this course is for:

  • 他言語の経験を持ち、純粋関数型パラダイムに本格的に踏み込みたいエンジニア
  • 型システムを武器にして堅牢なドメインモデルを設計したいアーキテクト
  • OCaml、Scala、Rust、Elmの経験者で、Haskellを比較軸として学びたい開発者
  • 計算機科学の理論的基盤を実装を通して体感したい学生・研究者
  • 金融、コンパイラ、形式手法、DSL領域でHaskellの採用を検討している技術者