Mercurial > hg > Members > atton > seminar_slides
comparison slides/20141021/slide.md @ 73:b58c0ab4f5e4
Add slides for seminar
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 21 Oct 2014 17:45:47 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
72:916d62123b1c | 73:b58c0ab4f5e4 |
---|---|
1 title: モナドによるプログラムの拡張 | |
2 author: Yasutaka Higa | |
3 cover: | |
4 lang: Japanese | |
5 | |
6 | |
7 | |
8 # 研究目的(modified) | |
9 * プログラミングにおいて、ソースコードを改変するとプログラムの挙動も変わる | |
10 * しかし、バージョン互換を維持する場合など、ソースコードを変更した後も同じ結果を得たい場合もある | |
11 * プログラムの改変をモナドによる拡張としてとして記述することで過去のプログラムの挙動も保存したい | |
12 * これによりリファクタリング支援や後方互換性の確保、拡張による実行結果の変化の検出などを行なう | |
13 | |
14 | |
15 # Summary | |
16 * 中間発表予稿提出が今月末(10/30) | |
17 * 教官室 Mac mini の domain を教えてください | |
18 * Similar の Functor 則の証明 in Agda | |
19 * Similar の Monad 則の証明中 in Agda | |
20 * あと例題欲しい | |
21 * Haskell で version compatible なコードを書く予定 | |
22 | |
23 # Proof Functor-laws to similar | |
24 * Functor-laws [(Haskell)](http://www.haskell.org/haskellwiki/Functor) | |
25 * refl で問題無し | |
26 | |
27 ``` | |
28 fmap id = id | |
29 fmap (p . q) = (fmap p) . (fmap q) | |
30 ``` | |
31 | |
32 | |
33 # Proof Monad-laws to Similar (Category) | |
34 * Monad-laws (Category) | |
35 * mu and eta | |
36 | |
37 ``` | |
38 join . fmap join = join . join | |
39 join . fmap return = join . return = id | |
40 return . f = fmap f . return | |
41 join . fmap (fmap f) = fmap f . join | |
42 ``` | |
43 | |
44 | |
45 # Proof Monad-laws to Similar (Haskell) | |
46 * Monad-laws (Haskell) | |
47 * return and bind | |
48 | |
49 ``` | |
50 return a >>= k = k a | |
51 m >>= return = m | |
52 m >>= (\x -> k x >>= h) = (m >>= k) >>= h | |
53 ``` | |
54 | |
55 # Check Point | |
56 * 3 つめでちょっとつまってます | |
57 | |
58 <!-- vim: set filetype=markdown.slide: --> |