関数型言語と型システム
関数型言語の標準であるHaskellに親しむことを通じてコンピュータ科学の基本を見直し、ディジタルメディアや実世界への応用を見ていきます。途中から授業支援システムにデータを乗り換えました。リンク切れのコンテンツは授業支援システムにアクセスしてください。暇ができたら、こちらにもコンテンツをコピーします。
参考書は
Haskell - the craft of functional programming (3rd edition) Simon Thompson Addison Wesley
および
Real World Haskell Bryan O'Sullivan, Don Stewart, and John Goerzen O'Reilly
です。前者の本の第1章から第12章までをカバーしつつ、学生参加型の授業を展開する予定です。後者はオンライン版が公開されていて参照は便利です。
回 | テーマ | You will be able to ... | 講義資料 |
---|---|---|---|
1 | Orientation | この授業を履修登録すべきか判断できる | functional01 |
2 | プログラミング環境の構築 | Haskellで初めてのプログラミングを体験する | functional02 |
3 | 基本的な型と定義 | 型とは何か説明できる and 関数を定義できる | functional03? |
4 | プログラムを書く | 再帰などを使った簡単なプログラムが書ける | functional04? |
5 | データ型、タプル、リスト | タプルとリスト違いを理解し使い分けができる | functional05? |
6 | リストを扱う | リストを扱う標準ライブラリ関数が使える | functional06? |
7 | リスト処理の関数を定義する | 再帰的なプログラミングについて説明できる | functional07? |
8 | ゲームを書く I/O処理 | 入出力を伴う対話的なプログラムが作れる | functional08? |
9 | プログラムのテストと証明 | 数学的帰納法によりプログラムの正しさが証明ができる | functional09? |
10 | 計算のパターン | 高階関数を理解し使うことができる | functional10? |
11 | 高階関数 | Curry化について理解している | functional11? |
12 | 高階関数を書く | 計算パターンを抽象化することができる | functional12? |
13 | 課題の割り当て | ||
14 | 課題発表会 | ||
15 | 課題発表会 |