Awesome
再帰ドリル
再帰を学ぶためのドリルです。使用するプログラミング言語は Haskell。
- 自然数に対する素朴な再帰 (演習1)
- 自然数に対する末尾再帰 (演習2)
- いろいろな終わり方 (演習3)
- 再帰的な自然数 (演習4)
- 自然数に対する少し複雑な再帰 (演習5)
- 再帰のこころ (演習6)
- メモ化 (演習7)
- リストに対する素朴な再帰 (演習8)
- リストを生成する再帰 (演習9)
- ループを超えた再帰 (演習10)
- 二分探索木(探索と挿入) (演習11)
- 二分探索木(走査と削除) (演習12)
- おわりに
演習に取り組む前に、まずレポジトリを clone して下さい。
% git clone https://github.com/kazu-yamamoto/recursion-drill.git
演習は exercise ディレクトリにあります。
% cd recursion-drill/exercise
cabal を使っている方
テストに利用している hspec ライブラリを以下のようにしてインストールして下さい。
% cabal update
% cabal install hspec
演習は、"数字.hs" というファイル中の undefined を変更することで解いていきましょう。ある部分ができたと思ったら、テストして動作を確認して下さい。たとえば、"1.hs" を書き換えた後は、以下のようにしてテストできます。
% runghc 1.hs
テストの結果は、成功は緑で、失敗は赤で表示されます。すべてが緑になるまで頑張りましょう。答えは answer というディレクトリにあります。考える前に答えを見てはいけません。
stack を使っている方
テストに利用している hspec ライブラリを以下のようにしてインストールして下さい。
% stack setup
% stack install hspec
演習は、"数字.hs" というファイル中の undefined を変更することで解いていきましょう。ある部分ができたと思ったら、テストして動作を確認して下さい。たとえば、"1.hs" を書き換えた後は、以下のようにしてテストできます。
% stack runghc 1.hs
テストの結果は、成功は緑で、失敗は赤で表示されます。すべてが緑になるまで頑張りましょう。答えは answer というディレクトリにあります。考える前に答えを見てはいけません。