Home

Awesome

再帰ドリル

再帰を学ぶためのドリルです。使用するプログラミング言語は Haskell。

  1. 自然数に対する素朴な再帰 (演習1)
  2. 自然数に対する末尾再帰 (演習2)
  3. いろいろな終わり方 (演習3)
  4. 再帰的な自然数 (演習4)
  5. 自然数に対する少し複雑な再帰 (演習5)
  6. 再帰のこころ (演習6)
  7. メモ化 (演習7)
  8. リストに対する素朴な再帰 (演習8)
  9. リストを生成する再帰 (演習9)
  10. ループを超えた再帰 (演習10)
  11. 二分探索木(探索と挿入) (演習11)
  12. 二分探索木(走査と削除) (演習12)
  13. おわりに

演習に取り組む前に、まずレポジトリを 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 というディレクトリにあります。考える前に答えを見てはいけません。