changeset 6:2a24f7479429 submit

Update to v2.3
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Wed, 29 Oct 2014 15:21:32 +0900
parents 156ae5d5750b
children 8f3766dcddda
files bachelor_middle_draft.pdf bachelor_middle_draft.tex
diffstat 2 files changed, 13 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
Binary file bachelor_middle_draft.pdf has changed
--- a/bachelor_middle_draft.tex	Wed Oct 29 15:08:35 2014 +0900
+++ b/bachelor_middle_draft.tex	Wed Oct 29 15:21:32 2014 +0900
@@ -3,6 +3,7 @@
 \usepackage{cprotect}
 \usepackage{picins}
 \usepackage{fancyhdr}
+\usepackage{fancyvrb}
 \usepackage{eclbkbox}
 \usepackage{url}
 %\pagestyle{fancy}
@@ -160,11 +161,10 @@
 % {{{ raw-program-after
 
 \begin{breakbox}
-{\tt
+\begin{Verbatim}[commandchars=+\[\]]
 primeFilter :: [Int] -> [Int]
-
-primeFilter xs = filter \underline{even} xs
-}
+primeFilter xs = filter +underline[even] xs
+\end{Verbatim}
 \caption{変更後の primeFilter 関数(変更点は下線)}
 \label{raw-program-after}
 \end{breakbox}
@@ -177,15 +177,15 @@
 
 \begin{breakbox}
 {\scriptsize
-\begin{verbatim}
+\begin{Verbatim}[commandchars=+\[\]]
 generator :: Int -> Delta [Int]
 generator x = let intList = [1..x] in
                   returnD intList
 
 primeFilter :: [Int] -> Delta [Int]
-primeFilter xs = let primeList    = filter isPrime xs
-                     refactorList = filter even xs    in
-                 returnDD primeList refactorList
+primeFilter xs = let primeList    = +underline[filter isPrime xs]
+                     modifiedList = +underline[filter even xs]    in
+                 returnDD primeList modifiedList
 
 count :: [Int] -> Delta Int
 count xs = let primeCount = length xs in
@@ -193,9 +193,9 @@
 
 primeCount :: Int -> Delta Int
 primeCount x = generator x >>= primeFilter >>= count
-\end{verbatim}
+\end{Verbatim}
 }
-\cprotect\caption{図\ref{raw-program-before}のプログラムに対する図\ref{raw-program-after}の変更を Delta Monad で記述した例}
+\cprotect\caption{図\ref{raw-program-before}のプログラムに対する図\ref{raw-program-after}の変更を Delta Monad で記述した例(対応する変更点は下線)}
 \label{delta-program}
 \end{breakbox}
 
@@ -237,7 +237,7 @@
 \end{itemize}
 
 変更前の実行結果を保存しながら、プログラムが変更された後の新しい実行結果が得られた。
-この実行結果を比較することにより、変更前のプログラムの実行結果が損なわれていないか検知する。
+この実行結果を比較することにより、プログラムがどのように変更されたか判断する。
 
 今回は検証のために変更前と変更後の両方のプログラムを実行した。
 しかし、必ず両方実行しなくてはならない訳では無い。
@@ -253,7 +253,7 @@
 Delta Monad を定義することにより、変更前のプログラムを保存しつつ変更後のプログラムとしても実行することが可能となった。
 さらに、実行履歴が得られるためプログラムがどのように変化したかを確認することもできる。
 
-今回定義したDelta Monad はプログラムの変更を保持できるのは1つのMonadにつき2つまでという制約がある。
+今回定義したDelta Monad が保持できるプログラムの変更は2つまでである。
 Delta Monad を拡張し、無限個の変更を扱えるようにすることでプログラムの変更をMonadのみで記述する。
 さらに、Monad によってプログラムの変更を記述することで、Monadの理論的背景である圏論の視点からプログラムを変更することの意味論を探る。
 
@@ -263,7 +263,7 @@
 
 \bibitem{moggi} Eugenio Moggi, Notion of Computation and Monads(1991)
 \bibitem{proofs-and-types} Jean-Yves Girard, Paulr Taylor, Yves Lafont, Proofs and Types(1990)
-\bibitem{category} Michael Barr and Chariles Wells, Category Theory for Computing Science
+\bibitem{category} Michael Barr and Charles Wells, Category Theory for Computing Science
 \bibitem{agda} The Agda Wiki - Agda \url{http://wiki.portal.chalmers.se/agda/pmwiki.php}
 
 \end{thebibliography}