狠狠撸
Submit Search
圏论と贬补蝉办别濒濒は仲良し
?
Download as PPTX, PDF
?
11 likes
?
7,873 views
O
ohmori
Follow
このスライドは第6回プログラマのための数学勉强会で使用しました。
Read less
Read more
1 of 11
Download now
Downloaded 44 times
More Related Content
圏论と贬补蝉办别濒濒は仲良し
1.
圏論とHaskellは 仲良し 法政大学 大森健児
2.
自己紹介 1969年5月卒業 1972年9月卒業 1969-85 企業の研究所で マルチプロセッサシステム 2016.2.29最終講義 1985-2016大学で教育と研究
3.
圏論 数学は、元来、抽象的だが、 その中で最も抽象的なのが圏論 それぞれの分野を圏とし、 それらに共通するものを扱う カテゴリーには、 ?集合の圏 ?モノイドの圏 ?群の圏 ?ベクトル空間の圏 ?グラフの圏 ?実数の集合と 連続関数の圏 ?位相空間の圏 ?デカルト閉圏 圏とは 1.対象(集合:要素の集まり) 2.射(関数) 3.ソース、ターゲット 4.恒等射 5.合成(結合律) 例:自然数の加算 (モノイド) ? 恒等射:0 合成: + 0 1 ? 例:自然数の加算 +? 恒等射:0 合成: +? °
+? = +(? + ?) +0 +1 ? ? カリー化 ? ? ? ? ? ? 例:集合と写像の圏 ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?? ? ? ? ? ? ? 例:グラフの圏 ノードとエッジを対象に
4.
圏論 ? 例:自然数とその列 [?] ? = [
] 米田の補題 Nat(Hom ????(?, _), ?) ? ?(?) X Hom ????(?, _) 圏? ?(?) 圏???? ? 随伴関手Hom ?(?(?), ?) ? Hom ?(?, ?(?)) 圏? 圏? ? ? 赤ん坊 の世界 雑音 中学生 の世界 会話中学生:職場体験 ? ? ? ° ? = ? + ? (+?) (+?) +? ° +? = + ? + ? ? ?1 ?2 ? ? ? 例:カリー化からモ ノイドへの写像 関手: 圏?から圏?への関手?: ? → ?とは、圏?の対象?を圏?の対象?(?)に対応付け、圏?の 射 ?: ? → ?を圏?の対象?(?)に対応付ける関数の組で、次の二つの条件を満たすものである。 1) ?の任意の二つの射?: ? → ?, ?: ? → ?に対して、?(? ? ?) = ?(?) ° ?(?)である。 2) ?の任意の対象?に対して、?(1 ?) = 1 ?( ?) である。 ? ? ? ? ?(?) ?(?) ?(?) ? ? 新しい圏に
5.
Universal Properties 積の定義: 対象?1, ?2の積とは、対象?、射?1:
? → ?1, ?2: ? → ?2から なり、次の条件を満足するものである。 任意の対象?と任意の射?1: ? → ?1, ?2: ? → ?2が与えられ た時、以下の図式が可換となるような?: ? → ?が唯一つ 存在する。 このとき、?は ?1 × ?2と表す。 最大公約数 積集合
6.
Universal Properties 和の定義: 対象?1, ?2の和とは、対象?、射?1:
? → ?1, ?2: ? → ?2か らなり、次の条件を満足するものである。 任意の対象?と任意の射?1: ?1 → ?, ?2: ?2 → ?が与えられ た時、以下の図式が可換となるような?′: ? → ?が唯一つ 存在する。 このとき、?は ?1 + ?2と表す。 最小公倍数 和集合
7.
Haskell プログラミング言語で、カテゴリー(圏論)を ベースにしているのは、Haskell 関数型言語の歴史 素数 primes =
filterPrime [2..] where filterPrime (p:xs) = p : filterPrime [x | x <- xs, x `mod` p /= 0] クイックソート quicksort [] = [] quicksort (x:xs) = quicksort smaller ++ [x] ++ quicksort larger where smaller = [a | a <- xs, a < x] larger = [a | a <- xs, a >= x] 関数とは ? = ?0 ? ???(速度) ? = ?0 + ???(位置) 言語 年 発明者 ラムダ計算 1930 チャーチ 圏論 1945 マックレーン LISP 1958 マッカーシー Scheme 1975 サスマン Smalltalk-80 1980 ゼロックス社 Haskell 1.0 1990 ハスケル?カリーに因 んで Haskell 2010 2010
8.
Haskellと圏論 圏 1.対象 2.射 3.ソース、ターゲット 4.恒等射 5.合成(結合律) Haskell 1.データ型(集合:要素の集まり) 2.関数(クラス?インスタンス) 3.シグニチャ データ型? ? ? ?°? データ型? ?′ = ???? ? ?′ =
???? ? ?′ °?′ = ? ??? ?°? = ???? ? °(???? ?) Haskellでの関手 随伴関手 モナド ?°? モナドの例 入出力 ファイル Maybe (例外事象) モナドの利点 ドメイン固有言語 →簡単に作成 圏? 圏? ? ? 忘却関手 赤ん坊 の世界 雑音 中学生 の世界 会話 実世界 純粋な 世界
9.
関数型リアクティブ プログラミング 関数型言語を実世界へ ?ロボット ?ゲーム ?シミュレーション 動画 ビリヤード台で衝突 しあう二つのボール ビリヤード座標系 重心座標系 simulation ::
HasTime t s => Wire s () IO a (Ball, Ball) simulation = proc _ -> do rec b1 <- ball "ball1" mass1 radius1 vInit1 pInit1 -< ("ball1", c) b2 <- ball "ball2" mass2 radius2 vInit2 pInit2 -< ("ball2", c) c <- collision -< (b1, b2) returnA -< (b1, b2) 振舞い:時間を変数とする関数 イベント:ある時間での事象 例 :音楽 振舞い :曲 イベント:打鍵 デモ Time Int x Time Int 2 stepper 2 x 詳細は http://bitterharvest.hatenablog.com/entry /2015/09/24/164937
10.
さらに勉强する人のために
11.
ご清聴ありがとうございました。 http://bitterharvest.hatenablog.com でお会いしましょう。
Download