著者:永遠の相 World Structure
ページ数:278

¥99¥0

[修正] 2022年03月19日 01時00分:「関手」の章の解説を手厚くした
2022年03月16日 10時00分:不要な改ページを削除

読む、作る、分かる。Pythonで始める柔らかい圏論入門

[御挨拶] 本書に興味を持っていただきまして、誠にありがとうございます。
本書は、プログラマを圏論の世界へご案内する事を目的とした小冊子です。

[本書が想定している読者] -プログラマ(Pythonのlambda式を学習済みの方)
-圏論を学習する際に現れる、圏論特有の記号に慣れていない方
-圏論の自然変換の導入まで学習したい方

[本書の特徴] Pythonのプログラムを利用しながら圏論を解説する。
プログラムを動かしながら圏論の世界を体験できるため、圏論に対する理解が深まる。

[本書の見所] Pythonで定義した関数を、圏の構造を保持して別の関数へ変換する。
そして圏の構造が本当に保たれているか、プログラムを動かして確認する。

[注意事項] 本書(本小冊子)が扱う範囲は非常に狭い。圏論の導入部分のみ扱う。
下記の目次を参考にして頂き、ご興味をもたれましたらご一読下さい。

[目次] -対象と射
-合成射
-Pythonで合成射を実装
-圏論の定義
-Pythonで合成射を実装
-Pythonで結合律を確認
-Pythonで恒等射を確認
-Pythonの型と関数の圏
-Pythonで合成射を実装
-関手
-Pythonで関手の挙動を確認
-関手の定義
-Pythonで関手の条件を実装
-Option関手の解説
-自然変換の学習
-Pythonで自然変換を実装する

[本書の雰囲気] Pythonの型と関数の圏 A , B , C
射 f : x → y ,
圏Aから圏Bへの射 F : A → B ,
圏Aから圏Cへの射 G : A → C ,
   GからFへの射 H : G → F

 (可換図式)
           G ( f )
 G ( x:Option[str] )────→ G ( y:Option[int] )
     │               │
 H[str] │           H[int] │
     ↓               ↓
 F ( x:List[str] ) ────→ F ( y:List[int] )
           F ( f )

 以下の式が成り立つとき、Hは自然変換である。
 H[int]・G ( f ) = F ( f )・H[str]

# =====[プログラム開始]=====
# ここで利用する関数 F , G , H , compose などは、
# 商品の内容を紹介するこの場所では記載を割愛する。
# 本書の中では、もちろん掲載している。
# 以下のプログラムは参考程度にご覧下さい。

# 圏B の対象Option[str] B_x = Option ( ‘Books‘ )

# H[int]・G ( f )
H_G_f = compose ( G ( f ) , H )

# F ( f )・H[str] F_f_H = compose ( H , F ( f ) )

# 値が一致するか検証
print( H_G_f ( B_x ) [ 0 ] )
print( F_f_H ( B_x ) [ 0 ] )

// 本書のPythonプログラムは、事前に
// Scalaで動作確認をしている。
// ( Scala version 2.10 )
// ( 以下のプログラムはタブを全角スペースに、括弧を全角括弧に置き換えている )

シリーズ一覧

  • 同シリーズの電子書籍はありませんでした。

 

  Kindle Unlimitedは、現在30日間無料体験キャンペーンを行っています!

この期間中は料金が980円→0円となるため、この記事で紹介している電子書籍は、すべてこのKindle Unlimited無料体験で読むことが可能です。

Kindle Unlimited 無料体験に登録する