この企画の目標を手短かに説明すると、 関数型プログラミングの入門者を対称とした導入例をちりばめつつ、 Idrisプログラミング言語の多少なりとも網羅的な手引きとなることです。
内容はいくつかの部にまとまっており、
中核となる言語の特徴についての部はIdrisでの関数型プログラミングのための手引きの眼目です。
各部はいくつかの章からなり、
それぞれの章ではIdrisプログラミング言語や中核にあるライブラリの一側面を踏み込んで扱います。
ほとんどの章は(しばしば多くの)演習が付録しており、
ディレクトリsrc/Solutions
から解法が見られます。
現状、言語中核の特徴の部分でさえまだ安定化を終えておらず、 活発に開発されているところです。 筆者の生徒にも関数型プログラミングを初めたばかりで開発しようとしている者がいます。
この部ではIdrisプログラミング言語への導入を地道に一歩ずつ進めることを試みます。 もし関数型プログラミングが初めてであれば、必ず順番にこの部の章にしたがい、また全ての演習を解いてください。
Haskellのような他の純粋関数型プログラミング言語を使ったことがあるなら、 導入的な内容(関数 その1、代数的データ型、インターフェース)に素早く目を通すのでもよいでしょう。 ほとんどは既に馴染みのある事柄でしょうから。
- 導入
- 関数 その1
- 代数的データ型
- インターフェース
- 関数 その2
- 依存型
- IO: 副作用のあるプログラミング
- 関手と仲間達
- 再帰と畳み込み
- 作用付き巡回
- シグマ型
- 命題の等値性
- 前提と証明検索
- 原始型
補遺は卑近な話題の参考書として使えます。 最終的には、Idrisの文法、典型的なエラー文言、モジュールシステム、対話的編集などについての簡潔な参考情報にしようと模索しています。
現時点でこの企画は活発に開発中で、Idris 2リポジトリのmainブランチとともに進展し続けています。GitHubでnightlyにテストされており、packのパッケージコレクションの最新版に対してビルドされています。
この入門を読み進めるにあたってはこちらに記載されているようにpackパッケージ管理を介してIdrisをインストールすることを強くお勧めします。