LoginSignup
27
22

More than 5 years have passed since last update.

Haskellで群論の代表的な代数的構造を学ぶための記事を書いた

Last updated at Posted at 2016-01-13

Haskellで群論の代表的な代数的構造を学ぶための記事を書いた

 当記事はGitBookで公開しています。

Haskellでわかる群論の代数的構造

趣旨

 Haskellの表現力を用いて、代数的構造の性質と満たすべき法則を示す。

範囲

 半群とモノイドと群。

import Test.QuickCheck

-- 半群型クラス
class Semigroup a where
  sappend :: a -> a -> a

-- 半群の満たすべき法則 ( 結合律 )
sgLaw :: (Semigroup a, Eq a) => a -> a -> a -> Bool
sgLaw x y z = (x `sappend` y) `sappend` z == x `sappend` (y `sappend` z)

-- 半群インスタンスの例
instance Semigroup Int where
  sappend = (*)

-- Semigroup Intが半群であることのテスト
sgTest1 :: IO ()
sgTest1 = let sgLaw' = sgLaw :: Int -> Int -> Int -> Bool  -- QuickCheckのために単相化
          in quickCheck sgLaw'

本音

 最近憂鬱だったので、3連休を有用なものにしたかった…のでざらっと書いてみた。
ちょっと働くの疲れたので誰か助けて。
皆アイシテルウウ。

Haskellでわかる群論の代数的構造

27
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
22