Mercurial > hg > Papers > 2015 > atton-thesis
changeset 88:8d1325911030
Mini fixes
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 19 Feb 2015 22:22:28 +0900 |
parents | 65fdfe9c3997 |
children | dc01e38c4fc1 |
files | english_presentation/slide.md |
diffstat | 1 files changed, 22 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/english_presentation/slide.md Thu Feb 19 20:24:16 2015 +0900 +++ b/english_presentation/slide.md Thu Feb 19 22:22:28 2015 +0900 @@ -12,14 +12,14 @@ # Formalization using Monad * Monad is a notion of Category theory * Monad represents meta computations in functional programming languages -* We proposed delta monad representation of program modifications +* We proposed Delta Monad representation of program modifications * We give definitions and the proof -* Delta monad can be used with other monads +* Delta Monad can be used with other monads # Merits of formalizing program modifications * Formal methods give verification of program based on mathematics and logics * Such as lambda calculus and corresponding proofs -* Moggi[1990] , introduce Monad as notion of meta computation in program +* Moggi[1989] , introduce Monad as notion of meta computation in program * A meta computation represented as a Monad has one to one mapping * We define program modification as meta computation which includes all modifications @@ -50,8 +50,8 @@ * ``data`` is a data type definition in Haskell * `` a `` is a type variable -* `` Mono a`` has a type `` Delta a`` -* `` Delta a (Delta a) `` has a type ``Delta a`` +* `` Mono a`` and `` Delta a (Delta a) `` has a type `` Delta a`` +* Delta can be stores all modification like list structure # How to define meta computation in Haskell * original function : f :: a -> b @@ -80,7 +80,7 @@ * Gives Delta Monad representation of the versions * Various computation can be possible in the Delta -# numberCount (Version 1) +# An Example Program: numberCount (Version 1) ``` generator x = [1..x] @@ -90,7 +90,7 @@ numberCount x = count (numberFilter (generator x)) ``` -# numberCount (Version 2) +# An Example Program: numberCount (Version 2) ``` generator x = [1..x] @@ -110,10 +110,22 @@ numberCount x = count =<< numberFilter =<< generator x ``` -# Combine Delta Monad and other Monads -* TODO +# Execution Program includes two version +* result + * Version 1 : 168 + * Version 2 : 500 -# Example +``` +*Main> numberCount 1000 +Delta 500 (Mono 168) +``` + +# Combine Delta Monad with other Monads +* Delta Monad can be used with other monads +* Meta computations can be added function to Delta + * Exception, Logging , I/O + +# An Example Delta Monad with Traces ``` *Main> numberCountM 10 DeltaM (Delta (Writer (4, ["[1,2,3,4,5,6,7,8,9,10]",