2018-09-01から1ヶ月間の記事一覧

Rustで圏論(6) 小圏・関手・自然変換

0, 1, 2, 3, 小圏 0(対象も射もない圏)、 1(対象が1つと恒等射のみの圏)、 2(対象が2つと、それぞれの恒等射・その間の1つの射からなる圏)、 3(対象が3つとそれぞれの恒等射、射も3つで1つの射が残り2つの射の合成である圏) をそれぞれRustで表現し…

Rustで圏論(5) イチ圏がなかなか作れない

イチ圏 前回はゼロ圏(対象も射も持たない圏)をRustで表現してみました。 次は、1(対象が1つと、その恒等射のみを持つ圏)を定義してみようと思います。 少しダサいですが、勝手に「イチ圏」と表記します。 構造体を作る #[derive(PartialEq)] struct Cate…

Rustで圏論(4) ゼロ圏を作る

対象の族と射の族の型を変更した 今回定義している圏のトレイトCategoryの中には、対象のHashSet(C0)と射のHashSet(C1)を返すメソッドが定義されていました。今回、思うところもあってHashSetからIteratorに変更しました。気分の問題といえばそこまでで…