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]",