レンズ (ぶつかり稽古の没プレゼン)
Upcoming SlideShare
Loading in...5
×
 

レンズ (ぶつかり稽古の没プレゼン)

on

  • 909 views

結局使わなかったプレゼンなので、どこかで話せれば。 (Japanese only)

結局使わなかったプレゼンなので、どこかで話せれば。 (Japanese only)

Statistics

Views

Total Views
909
Views on SlideShare
859
Embed Views
50

Actions

Likes
1
Downloads
2
Comments
0

1 Embed 50

https://twitter.com 50

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

レンズ (ぶつかり稽古の没プレゼン) レンズ (ぶつかり稽古の没プレゼン) Presentation Transcript

  • tuOkaerF @ aratarih レンズ
  • danoM::ataD 圏論好き モナモナ言うモナド入門 aratarih@ 自己紹介
  • モナドの話しかしない おじさん?
  • sdanom tuoba gniklat potS
  • sdanomoc tuoba klaT
  • arbeglaoc danomoc etatsoc si snel
  • sn e l データ構造の一部に注目 オブジェクトのフィールドに注目 セッターとゲッターの組
  • ネストするデータ構造 nm =cmi.eAto(.eNm( ae omtgtuhr)gtae) cmi.eAto(.eNm(hrtr" omtgtuhr)stae"iaaa)
  • イミュータブルの場合 セッターは新しいインスタンスを返す。 ato uhr =cmi.eAto( omtgtuhr) nwuhr=ato.eNm(hrtr" eAto uhrstae"iaaa) nwomt=cmi.eAto(eAto) eCmi omtstuhrnwuhr
  • sn e l n m というレンズの、s t n m がセッター、g t n m が ae e ae e ae ゲッター。 nwuhr=(e nm)ato "iaaa eAto st ae uhr hrtr"
  • の合成 sn e l 合成演算を定義すれば、ネストした先のデータを簡単に更新 できる。 nwomt=(e (ae.ato) cmi "iaaa eCmi st nm uhr) omt hrtr" n m . a t o は作者の名前に注目するレンズ。通常のフ ae uhr ィールドと同じように値をセットできる。
  • sn e l 様々な の実装 Ln {e : s- v st: s- v- s es gt : > , e : > > } 直感的 s- (,v- s > v > ) arbeglaoc danomoc etatsoc Fntrf= ( - fv - s- fs uco > v > ) > > の の実装に近い snel lleksaH .1 .2 .3
  • と の関係 .2 .1 Ln {e : s- v st: s- v- s es gt : > , e : > > } s- (,v- s > v > ) Fntrf= ( - fv - s- fs uco > v > ) > > は直積 g t s t であり、同値。 e e > , < .2 s > tes, teg< tes s v )s dns v ,v ( teg ts f v .3 .2 .1
  • .3 と の関係 .2 Ln {e : s- v st: s- v- s es gt : > , e : > > } s- (,v- s > v > ) Fntrf= ( - fv - s- fs uco > v > ) > > 米田の補題を二回使うことで同値。 XF ) F ,) , X( ) , X( steS F ( steS .3 .2 .1
  • VF V ) F ,) , V( × V( steS 積と冪が随伴の関係であることから、 V XF V VF ) F V ,) V , V( X として を用いると、 ) F V ,) , X( ( ( steS steS について、 考えると米田の補題より、 XF V X steS : F 任意の関手 なる関手を
  • )S V( × V ))S( ,) なる関手を用いれば、 SG GS ))S( )S ,) )X ,) ,) V( × V( V( × V , G( , G( steS( steS( steS( steS s teS X s teS s teS なる関手を と、米田の補題より、 SG = G S steS G として、 steS steS steS : S 一方、 と定義する
  • )S つまり、F n t r f = ( - f v - f s uco > v > ) > と( , v > ) v - s は同値。 ))S( V( × V V( × V )S ))S( ,) V( V( ste S s teS steS 先に示しておいた関係により、 ,) ,) , V(steS × V( steS s teS steS( ste S s teS steS  を とすれば、
  • trapretnuoc eht fo ,etisoppo eht fo )scitamehtam( laud -o c 「反対」という意味。ほとんどの場合は な概念。 とは
  • M MM M M MM MMM M M danom MM M M M
  • W WW W W WW W WWW W danomo c W WW W W
  • X h XM X X X h h XM X 1 ar b eg l a XM : h XM X XMM hM と の組。 0 X
  • X h XW 1 X X X XW h h XW X : h XW X hW ar b eg l ao c XWW と の組。 0 X
  • S)) V × ( ) V × S V(( = V = S VM danom e ta t s 積と冪の合成。
  • X)) V( )V × V × )S (( = V( = S V W danomo c e ta t so c 冪と積の合成。
  • ar b eg l ao c d a nomo c e t a t so c ) V × )S V(( S = S VW S dt CSaevs=CSae( - s v aa ott ott v > ) casCmndwwee ls ooa hr etat: ws- s xrc : > dpiae: ws- w( s ulct : > w ) isac Cmnd(ott s wee ntne ooa CSae ) hr -etat: ( - s v - s -xrc : v > , ) > etat(ott fv =fv xrc CSae ) -dpiae: ( - s v - ( - ( - s v,v -ulct : v > , ) > v > v > , ) ) dpiae(ott fv =CSae(u- CSaefu v ulct CSae ) ott > ott ) s- ( - s v > v > , ) tp Ln sv=s- CSaevs ye es > ott
  • u s l tes = u )v s l tes( l tes v = )v s l tes( l teg s = )s l teg( s l tes arbeglaoc danomoc sn eL 、 の定義から、以下が成り立つ。 が満たす性質
  • adenoY dna ,serotS ,sesneL nevohraaL nav nawT 表現は米田の補題から導ける danomoc etatsoc eht rof sarbeglaoc eht era sesneL arbeglaoc danomoc sneL の満たすべき性質は の性質である まとめ