Haskellでわかる群論の代数的構造をやってみました。

私は数学の教科書で問題を解こうとすると眠くなります。けれど、プログラミングになると眠くなりません。なので、代数の基本をプログラミングで試せるaiya000さんのgitbook「Haskellでわかる群論の代数的構造」をやってみました。

gitbookは群、グループまで書かれていますが、ソースコードのほうは環、リングまで書かれていました。

stackの場合、.cabalファイルにhspecとQuickCheckと書くと、すぐに使えて、stack build –testで、ビルドとテストを実行できます。

hw.cabalについて

.cabalファイルには、src/Group.hs、src/Semigroup.hsのようにモジュールを追加したら(ここでいうモジュールとは、ファイル一行目のmodule Group whereの事)、そのたびにexposed-modulesに追加していきます。

あとは、test-suite hw-test:のところには、build-dependsにhspecとQuickCheckを追加しました。

 

src/Group.hs

test/GroupSpec.hs

Spec.hs

 

まとめ

プログラミングの場合は、言葉の定義を何回も見返したりして、それをコメントに書いて、さらに実装しテストをするので、思っていた以上に数学に対して、抵抗なく学んでいけています。

今回は、Haskell,Stackという構成なので、近いうちにgithubにアップロードしたいと思います。