\documentclass[dvipsnames,14pt,t,xelatex]{beamer}
\usepackage{../slides}
\usepackage{../graphics}
\usepackage{../langs}
%\usepackage{../data}

\hfuzz=220pt 

%\setmonofont[Scale=.88]{Consolas}
%\newfontfamily{\consolas}{Consolas}

\lstset{language=Scala,
        style=mystyle,
        numbersep=0pt,
        numbers=none,
        xleftmargin=0mm}

\newcommand{\bl}[1]{\textcolor{blue}{#1}}     

% beamer stuff 
\renewcommand{\slidecaption}{PEP (Scala) 02, King's College London}


\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{%
  \begin{tabular}{@ {}c@ {}}
  \\[5mm]
  \huge PEP Scala (2) 
  \end{tabular}}

  \normalsize
  \begin{center}
  \begin{tabular}{ll}
  Email:  & christian.urban at kcl.ac.uk\\
  Office: & S1.27 (1st floor Strand Building)\\
  Slides \& Code: & KEATS
  \end{tabular}
  \end{center}


\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     

\begin{frame}[t]
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}


\begin{itemize}
\item \large {\bf You can avoid \textcolor{blue}{\texttt{null}}}:
\end{itemize}


\begin{textblock}{6}(1,5)
  \begin{bubble}[10.5cm]\small
      ``I call it my billion-dollar mistake. It was the invention of
      the null reference in 1965. At that time, I was designing the
      first comprehensive type system for references in an object
      oriented language (ALGOL W). My goal was to ensure that all use
      of references should be absolutely safe, with checking performed
      automatically by the compiler. But I couldn't resist the
      temptation to put in a null reference, simply because it was so
      easy to implement. This has led to innumerable errors,
      vulnerabilities, and system crashes, which have probably caused
      a billion dollars of pain and damage in the last forty years.''
      \hfill Sir Tony (Hoare)
\end{bubble}
\end{textblock}
  
\begin{textblock}{5}(11.8,1)
\includegraphics[scale=0.20]{hoare.jpg}\\
\end{textblock}
  
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[c]
\frametitle{\huge\textbf{\texttt{return}}}

\begin{center}\LARGE
you should never use it
\end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[c]
\frametitle{Types}

\begin{itemize}
\item Base types\smallskip

  \begin{tabular}{@{}l@{}}
    \textcolor{codegreen}{\texttt{Int}},
    \textcolor{codegreen}{\texttt{Long}},
    \textcolor{codegreen}{\texttt{BigInt}},
    \textcolor{codegreen}{\texttt{Float}},
    \textcolor{codegreen}{\texttt{Double}}\\
    \textcolor{codegreen}{\texttt{String}},
    \textcolor{codegreen}{\texttt{Char}}\\
    \textcolor{codegreen}{\texttt{Boolean}}
  \end{tabular}

\item Compound types \smallskip   

  \begin{tabular}{@{}ll@{}}
    \textcolor{codegreen}{\texttt{List[Int]}}     & lists of Int's \\
    \textcolor{codegreen}{\texttt{Set[Double]}}   & sets of Double's \\
    \textcolor{codegreen}{\texttt{(Int, String)}} & Int-String pair\\
    \textcolor{codegreen}{\texttt{List[(BigInt, String)]}} &
                                      lists of BigInt-String\\
                                      & pairs\\
    \textcolor{codegreen}{\texttt{List[List[Int]]}} & list of lists of Int's\\                                  
  \end{tabular}

\end{itemize}  

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[c]
\frametitle{\begin{tabular}{c}\\[3cm]\alert{Questions?}\end{tabular}}

\mbox{}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
\end{document}


\end{document}

%%% Local Variables:  
%%% mode: latex
%%% TeX-master: t
%%% End: 

