
科目の概要
Scalaというプログラミング言語を用いて、関数型プログラミングの思考と技法を身につける。具体的には、関数や多相関数の設計、エラー処理、リスト操作や遅延ストリームの実装について理解を深める。最終目標として、パーサーコンビネーターのライブラリを実装し、自分だけのプログラミング言語を作れるようになることを目指す。
科目情報
履修想定年次
3年次
単位数
2単位
開講Q
1Q、3Q
科目区分
選択
授業の方法
オンデマンド科目
評価方法
確認レポート 50% , 単位認定試験 50%
前提推奨科目
前提必須科目
後継推奨科目
科目コード
INF-3-C1-1030-002
到達目標
この授業を終了した時点で、学生はScalaを使った関数型プログラミングに対する深い理解を持ち、具体的なアプリケーション作成に活かすことができるようになることを目標とする。また、最終的にはパーサーコンビネーターのライブラリを作成し、自分のプログラミング言語を作るための基礎となるスキルを身につけることを目指す。
教科書・参考書
- MartinOdersky著・LexSpoon著・BillVenners著『Scalaスケーラブルプログラミング第4版』インプレス、2021年MartinOdersky著・LexSpoon著・BillVenners著『AdvancedProgramminginScala』ArtimaInc、2023年MiranLipovaca(著)・田中英行(翻訳)・村主崇行(翻訳)『すごいHaskellたのしく学ぼう!』オーム社、2017年
授業時間外の学修
各回の授業内容は繰り返し見返し、各回二時間ほど復習を行ってください。また、次回の学修内容についてもあらかじめ不明な単語や前提となる知識をWebで調べるなどして各回三時間ほど予習を行ってください。
特記事項
順次公開予定
授業計画
第1回Scalaで解く素因数分解
第1回
Scalaで解く素因数分解
第2回Scalaで解く部分和問題
第2回
Scalaで解く部分和問題
第3回関数
第3回
関数
第4回型パラメータと変位指定
第4回
型パラメータと変位指定
第5回エラー処理
第5回
エラー処理
第6回より高度なエラー処理
第6回
より高度なエラー処理
第7回コレクション
第7回
コレクション
第8回リストの操作
第8回
リストの操作
第9回ストリーム
第9回
ストリーム
第10回暗黙
第10回
暗黙
第11回テスト
第11回
テスト
第12回Scala の文法の落ち穂拾い
第12回
Scala の文法の落ち穂拾い
第13回パーサコンビネーター
第13回
パーサコンビネーター
第14回パーサコンビネーターで作る JSON パーサ
第14回
パーサコンビネーターで作る JSON パーサ
第15回DSL を作る
第15回
DSL を作る