Mercurial > hg > Papers > 2015 > atton-thesis
comparison english_presentation/slide.md @ 90:b29ab7ecf509
Fix presentation
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 20 Feb 2015 22:14:01 +0900 |
parents | 8d1325911030 |
children |
comparison
equal
deleted
inserted
replaced
89:dc01e38c4fc1 | 90:b29ab7ecf509 |
---|---|
9 * Especially program modifications are important | 9 * Especially program modifications are important |
10 * Let's formalize modification using Monad | 10 * Let's formalize modification using Monad |
11 | 11 |
12 # Formalization using Monad | 12 # Formalization using Monad |
13 * Monad is a notion of Category theory | 13 * Monad is a notion of Category theory |
14 * Monad represents meta computations in functional programming languages | 14 * Monad represents meta computations in functional program |
15 * We proposed Delta Monad representation of program modifications | 15 * We proposed Delta Monad representation of program modifications |
16 * We give definitions and the proof | 16 * We give definitions and the proof |
17 * Delta Monad can be used with other monads | 17 * Delta Monad can be used with other monads |
18 | 18 |
19 # Merits of formalizing program modifications | 19 # Merits of formalizing program modifications |
25 | 25 |
26 # Definitions of Program | 26 # Definitions of Program |
27 * A program is a typed lambda calculus | 27 * A program is a typed lambda calculus |
28 * lambda term | 28 * lambda term |
29 * variables : x,y | 29 * variables : x,y |
30 * lambda : \x -> f x | |
30 * function applications : f x | 31 * function applications : f x |
31 * lambda : \x -> f x | |
32 * type | 32 * type |
33 * type variable : A, B | 33 * type variable : A, B |
34 * functional type : A -> B | 34 * functional type : A -> B |
35 | 35 |
36 # Every lambda term has a type | 36 # Every lambda term has a type |
108 count x = Mono (length x) | 108 count x = Mono (length x) |
109 | 109 |
110 numberCount x = count =<< numberFilter =<< generator x | 110 numberCount x = count =<< numberFilter =<< generator x |
111 ``` | 111 ``` |
112 | 112 |
113 # Execution Program includes two version | 113 # Execute Program includes two version |
114 * result | 114 * result |
115 * Version 1 : 168 | 115 * Version 1 : 168 |
116 * Version 2 : 500 | 116 * Version 2 : 500 |
117 | 117 |
118 ``` | 118 ``` |
121 ``` | 121 ``` |
122 | 122 |
123 # Combine Delta Monad with other Monads | 123 # Combine Delta Monad with other Monads |
124 * Delta Monad can be used with other monads | 124 * Delta Monad can be used with other monads |
125 * Meta computations can be added function to Delta | 125 * Meta computations can be added function to Delta |
126 * Exception, Logging , I/O | 126 * Exception, Logging , I/O, etc... |
127 | 127 |
128 # An Example Delta Monad with Traces | 128 # An Example Delta Monad with Traces |
129 ``` | 129 ``` |
130 *Main> numberCountM 10 | 130 *Main> numberCountM 10 |
131 DeltaM (Delta (Writer (4, ["[1,2,3,4,5,6,7,8,9,10]", | 131 DeltaM (Delta (Writer (4, ["[1,2,3,4,5,6,7,8,9,10]", |