| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
興味がある方は是非ご覧ください。こちらがmasterにマージされるのは、課題22の文面まで一通り埋まってからです。あしからず。
作りながら学ぶHaskell入門
Stackのインストールを推奨します。
下記のいずれかの方法でインストールしてください。
「ターミナル」を起動し、下記のいずれかのコマンドを実行してください。
curl -sSL https://get.haskellstack.org/ | sh
あるいは、
wget -qO- https://get.haskellstack.org/ | sh
64bit版のWindowsをお使いの方はこちらからインストーラーをダウンロードして、インストールしてください(よくわからなければ、とりあえず64bit版を試してみてください。32bit版のWindowsをお使いの方は残念ながらあきらめてLinuxを仮想マシンで動かしてインストールしてください)。
Chocolateyをお使いの方は、
choco install haskell-stack
でもインストールできます。
現状はHackageにまだ公開していないので👇のコマンドを実行してください(どのOSでもこのコマンドです)。
git clone https://github.com/haskell-jp/makeMistakesToLearnHaskell # あるいは git clone git://github.com/haskell-jp/makeMistakesToLearnHaskell cd makeMistakesToLearnHaskell stack install
GHCのインストールと、「Make Mistakes to Learn Haskell!」のビルドが始まります。
インストールが完了したら、「⚙️使い方」の節に書かれたコマンドを試してみてください。
なお、Linuxにおいて、libtinfoパッケージがないとインストールできない」というトラブルが報告されています。
例えばUbuntuの場合、下記のコマンドを実行してインストールしておく必要があるかも知れません。
sudo apt-get install libtinfo-dev
インストール中などに何か困ったことが発生した場合、下記のいずれかのウェブサービスで質問してみてください。
現状、当入門はまだまだ完成度が低いため、今後も度々更新することとなります。
アップデートが必要な場合は、👆の手順でgit cloneしたディレクトリーに移動した上で、
git pull stack install
を実行してください。
課題の一覧を表示する(特に引数を与えなければ一覧が表示されます)
mmlh
課題1の内容を表示する
mmlh show 1
mmlh show --terminal 1
課題の回答をテストする
(最後にmmlh showした課題のテストをする)
mmlh verify your_answer.hs
MSYS2を利用している場合、stackがインストールするMSYS2と衝突して問題が起こることがあります。その場合、%APPDATA%\stack\config.yamlに以下の行を追加し、インストール済みのMSYSを使うように設定しましょう。
skip-msys: true
問題を表示したり、ユーザーが与えた回答を判定するための基本的なフレームワークはできています。
私 igrepが社内の勉強会で使用するため、下記のことに取り組んでいます。
と書きましょう。
主に編集するファイルはsrc/Education/MakeMistakesToLearnHaskell/Exercise.hsです。
このファイルに各課題の判定方法や、ヒントの判定処理がすべてまとまっています。
文字列まわりで共通化できる処理を追加したくなったら、Exercise.hsに直接追加するか、src/Education/MakeMistakesToLearnHaskell/Evaluator/以下にファイルを追加するのが良いかと思います(おいおいRegex.hsというファイルを追加します)。
課題の判定処理のテストを書く場合は、test/Education/MakeMistakesToLearnHaskell/ディレクトリーに、ExerciseNSpec.hs(Nは整数)という名前のファイルを追加してください。
具体的なテストの書き方は既存のファイルを見ていただくとわかるかと思います。Hspecを使っています。
| Back | FazBrowse Home | New Git URL |