diff -r 499007a7bce2 -r 4a1739f256fd handouts/ho03.tex --- a/handouts/ho03.tex Wed Oct 03 13:37:11 2018 +0100 +++ b/handouts/ho03.tex Fri Oct 05 11:07:57 2018 +0100 @@ -131,7 +131,7 @@ \begin{figure}[p] \small \lstinputlisting[numbers=left]{../progs/display/dfa.scala} -\caption{A Scala implementation of DFAs using partial functions. +\caption{An implementation of DFAs in Scala using partial functions. Note some subtleties: \texttt{deltas} implements the delta-hat construction by lifting the (partial) transition function to lists of characters. Since \texttt{delta} is given as a partial function, @@ -160,7 +160,7 @@ definition, but a function from states to booleans (this function is supposed to return true whenever a state is final; false otherwise). While this boolean function is different from the sets of -states, Scala allows to use sets for such functions (see Line 40 where +states, Scala allows us to use sets for such functions (see Line 40 where the DFA is initialised). Again it will become clear later on why I use functions for final states, rather than sets. @@ -191,9 +191,9 @@ Finally, I let you ponder whether this is a good implementation of DFAs or not. In doing so I hope you notice that the $\varSigma$ and -$Qs$ components (the alphabet and the set of finite states, +$Qs$ components (the alphabet and the set of \emph{finite} states, respectively) are missing from the class definition. This means that -the implementation allows you to do some fishy things you are not +the implementation allows you to do some ``fishy'' things you are not meant to do with DFAs. Which fishy things could that be?