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: -->