SlideShare a Scribd company logo
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

の満たすべき性質は

の性質である

まとめ

More Related Content

Viewers also liked

すべてが@__kanになる
すべてが@__kanになるすべてが@__kanになる
すべてが@__kanになる
Masahiro Honma
 
モナモナ言うモナド入門.tar.gz
モナモナ言うモナド入門.tar.gzモナモナ言うモナド入門.tar.gz
モナモナ言うモナド入門.tar.gz
Masahiro Honma
 
20120526 hachioji.pm
20120526 hachioji.pm20120526 hachioji.pm
20120526 hachioji.pm
Masahiro Honma
 
Stateモナドの解説 中編
Stateモナドの解説 中編Stateモナドの解説 中編
Stateモナドの解説 中編
Masahiro Honma
 
Perl saved a lady.
Perl saved a lady.Perl saved a lady.
Perl saved a lady.
Masahiro Honma
 
Stateモナドの解説 後編
Stateモナドの解説 後編Stateモナドの解説 後編
Stateモナドの解説 後編
Masahiro Honma
 
TraitとMoose::Role
TraitとMoose::RoleTraitとMoose::Role
TraitとMoose::Role
Masahiro Honma
 
Hachioji.pm in Machida の LT
Hachioji.pm in Machida の LTHachioji.pm in Machida の LT
Hachioji.pm in Machida の LT
Masahiro Honma
 
Math::Category
Math::CategoryMath::Category
Math::Category
Masahiro Honma
 
Types and perl language
Types and perl languageTypes and perl language
Types and perl language
Masahiro Honma
 
定理3
定理3定理3
定理3
Masahiro Honma
 
Monads in perl
Monads in perlMonads in perl
Monads in perl
Masahiro Honma
 
Stateモナドの解説 前編
Stateモナドの解説 前編Stateモナドの解説 前編
Stateモナドの解説 前編
Masahiro Honma
 
Git入門
Git入門Git入門
Git入門
Masahiro Honma
 
ウヰスキーとPSGI
ウヰスキーとPSGIウヰスキーとPSGI
ウヰスキーとPSGI
Masahiro Honma
 
カレーとHokkaidopm
カレーとHokkaidopmカレーとHokkaidopm
カレーとHokkaidopm
Masahiro Honma
 
モデルから知るGit
モデルから知るGitモデルから知るGit
モデルから知るGit
Masahiro Honma
 
Arrows in perl
Arrows in perlArrows in perl
Arrows in perl
Masahiro Honma
 
AnyEvent and Plack
AnyEvent and PlackAnyEvent and Plack
AnyEvent and Plack
Masahiro Honma
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなし
Masahiro Honma
 

Viewers also liked (20)

すべてが@__kanになる
すべてが@__kanになるすべてが@__kanになる
すべてが@__kanになる
 
モナモナ言うモナド入門.tar.gz
モナモナ言うモナド入門.tar.gzモナモナ言うモナド入門.tar.gz
モナモナ言うモナド入門.tar.gz
 
20120526 hachioji.pm
20120526 hachioji.pm20120526 hachioji.pm
20120526 hachioji.pm
 
Stateモナドの解説 中編
Stateモナドの解説 中編Stateモナドの解説 中編
Stateモナドの解説 中編
 
Perl saved a lady.
Perl saved a lady.Perl saved a lady.
Perl saved a lady.
 
Stateモナドの解説 後編
Stateモナドの解説 後編Stateモナドの解説 後編
Stateモナドの解説 後編
 
TraitとMoose::Role
TraitとMoose::RoleTraitとMoose::Role
TraitとMoose::Role
 
Hachioji.pm in Machida の LT
Hachioji.pm in Machida の LTHachioji.pm in Machida の LT
Hachioji.pm in Machida の LT
 
Math::Category
Math::CategoryMath::Category
Math::Category
 
Types and perl language
Types and perl languageTypes and perl language
Types and perl language
 
定理3
定理3定理3
定理3
 
Monads in perl
Monads in perlMonads in perl
Monads in perl
 
Stateモナドの解説 前編
Stateモナドの解説 前編Stateモナドの解説 前編
Stateモナドの解説 前編
 
Git入門
Git入門Git入門
Git入門
 
ウヰスキーとPSGI
ウヰスキーとPSGIウヰスキーとPSGI
ウヰスキーとPSGI
 
カレーとHokkaidopm
カレーとHokkaidopmカレーとHokkaidopm
カレーとHokkaidopm
 
モデルから知るGit
モデルから知るGitモデルから知るGit
モデルから知るGit
 
Arrows in perl
Arrows in perlArrows in perl
Arrows in perl
 
AnyEvent and Plack
AnyEvent and PlackAnyEvent and Plack
AnyEvent and Plack
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなし
 

Recently uploaded

Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (12)

Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

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