\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: + −
+ −