handouts/ho02.tex
changeset 512 a6aa52ecc1c5
parent 511 1af5ec39d006
child 550 71fc4a7a7039
equal deleted inserted replaced
511:1af5ec39d006 512:a6aa52ecc1c5
   495 
   495 
   496 \begin{figure}[p]
   496 \begin{figure}[p]
   497   \lstinputlisting[numbers=left,linebackgroundcolor=
   497   \lstinputlisting[numbers=left,linebackgroundcolor=
   498                   {\ifodd\value{lstnumber}\color{capri!3}\fi}]
   498                   {\ifodd\value{lstnumber}\color{capri!3}\fi}]
   499                   {../progs/app5.scala}
   499                   {../progs/app5.scala}
   500 \caption{A Scala implementation of the \textit{nullable} and 
   500 \caption{A Scala implementation of \textit{nullable} and 
   501   derivative functions. These functions are easy to
   501   derivative function. These functions are easy to
   502   implement in functional languages. This is because pattern 
   502   implement in functional programming languages. This is because pattern 
   503   matching and recursion allow us to mimic the mathematical
   503   matching and recursion allow us to mimic the mathematical
   504   definitions very closely. Nearly all functional
   504   definitions very closely. Nearly all functional
   505   programming languages support pattern matching and
   505   programming languages support pattern matching and
   506   recursion out of the box.\label{scala1}}
   506   recursion out of the box.\label{scala1}}
   507 \end{figure}
   507 \end{figure}
   842 mostly by some form of induction. Remember that regular
   842 mostly by some form of induction. Remember that regular
   843 expressions are defined as 
   843 expressions are defined as 
   844 
   844 
   845 \begin{center}
   845 \begin{center}
   846 \begin{tabular}{r@{\hspace{1mm}}r@{\hspace{1mm}}l@{\hspace{13mm}}l}
   846 \begin{tabular}{r@{\hspace{1mm}}r@{\hspace{1mm}}l@{\hspace{13mm}}l}
   847   $r$ & $::=$ &   $\ZERO$         & null language\\
   847   $r$ & $::=$ &   $\ZERO$         & nothing\\
   848         & $\mid$ & $\ONE$           & empty string / \texttt{""} / []\\
   848         & $\mid$ & $\ONE$           & empty string / \texttt{""} / []\\
   849         & $\mid$ & $c$                  & single character\\
   849         & $\mid$ & $c$                  & single character\\
   850         & $\mid$ & $r_1 + r_2$          & alternative / choice\\
   850         & $\mid$ & $r_1 + r_2$          & alternative / choice\\
   851         & $\mid$ & $r_1 \cdot r_2$      & sequence\\
   851         & $\mid$ & $r_1 \cdot r_2$      & sequence\\
   852         & $\mid$ & $r^*$                & star (zero or more)\\
   852         & $\mid$ & $r^*$                & star (zero or more)\\