Commit 9b75f0b4 by Mark Cohen

Started presentation

parent 8ddeadd5
.cm/
.DS_Store
build/
\documentclass{beamer}
\usetheme{default}
\usepackage{amssymb, amsmath, amsthm, amsrefs}
\usepackage[english = american]{csquotes}
\MakeOuterQuote{"}
%% better code font
% https://tex.stackexchange.com/q/88001/5764
\usepackage{listings, inconsolata, letltxmacro}
\lstset{basicstyle=\ttfamily\footnotesize, breaklines=true}
\LetLtxMacro\oldttfamily\ttfamily
\DeclareRobustCommand{\ttfamily}{\oldttfamily\csname ttsize\endcsname}
\newcommand{\setttsize}[1]{\def\ttsize{#1}}%
\setttsize{\footnotesize}
% ONE MOTHERFUCKING SPACE AFTER EACH MOTHERFUCKING SENTENCE
\frenchspacing
% judgment form
\usepackage{ebproof}
% turnstile alias
\newcommand{\proves}{\vdash}
% function arrow alias
\newcommand{\arrow}{\to}
% backslash alias
\newcommand{\bs}{\, \backslash \,}
\title{Typeclasses with Associated Types for ML Languages}
\subtitle{Bachelors' Thesis}
\author{Mark Cohen \and Adam Shaw}
\institute[University of Chicago]
{
Department of Computer Science\\
University of Chicago
}
\date{5 June 2019}
\begin{document}
\raggedright
\begin{frame}
\titlepage
\end{frame}
\begin{frame}[fragile]{Motivations}
\begin{itemize}
\item<1-> Some languages I like have some cool features. Why doesn't ML have those features?
\item<2-> {
Python:
\begin{lstlisting}
for (k, v) in d:
if query(db, k) == None:
db[k] = v
\end{lstlisting}
}
\item<3-> {
Rust:
\begin{lstlisting}
impl Iterator for Fibonacci {
type Item = u32;
fn next(&mut self) -> Option<u32> {
let new_next = self.curr + self.next;
self.curr = self.next;
self.next = new_next;
Some(self.curr)
}
}
\end{lstlisting}
}
\end{itemize}
\end{frame}
\begin{frame}{Motivations}
\begin{itemize}
\item<1-> But there are drawbacks to each of these schemes.
\item<2-> Python: not type-sound
\item<2-> Rust: trait-based % can only impl traits for types you "own"
\end{itemize}
\end{frame}
\begin{frame}{Motivations}
How can we bring this to the land of ML?
\end{frame}
\begin{frame}{Beginnings: polymorphic type inference}
\end{frame}
% TODO: why not Haskell?
% \begin{frame}{Outline}
% \tableofcontents
% % You might wish to add the option [pausesections]
% \end{frame}
% % Section and subsections will appear in the presentation overview
% % and table of contents.
% \section{First Main Section}
% \subsection{First Subsection}
% \begin{frame}{First Slide Title}{Optional Subtitle}
% \begin{itemize}
% \item {
% My first point.
% }
% \item {
% My second point.
% }
% \end{itemize}
% \end{frame}
% \subsection{Second Subsection}
% % You can reveal the parts of a slide one at a time
% % with the \pause command:
% \begin{frame}{Second Slide Title}
% \begin{itemize}
% \item {
% First item.
% \pause % The slide will pause after showing the first item
% }
% \item {
% Second item.
% }
% % You can also specify when the content should appear
% % by using <n->:
% \item<3-> {
% Third item.
% }
% \item<4-> {
% Fourth item.
% }
% % or you can use the \uncover command to reveal general
% % content (not just \items):
% \item<5-> {
% Fifth item. \uncover<6->{Extra text in the fifth item.}
% }
% \end{itemize}
% \end{frame}
% \section{Second Main Section}
% \subsection{Another Subsection}
% \begin{frame}{Blocks}
% \begin{block}{Block Title}
% You can also highlight sections of your presentation in a block, with it's own title
% \end{block}
% \begin{theorem}
% There are separate environments for theorems, examples, definitions and proofs.
% \end{theorem}
% \begin{example}
% Here is an example of an example block.
% \end{example}
% \end{frame}
% % Placing a * after \section means it will not show in the
% % outline or table of contents.
% \section*{Summary}
% \begin{frame}{Summary}
% \begin{itemize}
% \item
% The \alert{first main message} of your talk in one or two lines.
% \item
% The \alert{second main message} of your talk in one or two lines.
% \item
% Perhaps a \alert{third message}, but not more than that.
% \end{itemize}
% \begin{itemize}
% \item
% Outlook
% \begin{itemize}
% \item
% Something you haven't solved.
% \item
% Something else you haven't solved.
% \end{itemize}
% \end{itemize}
% \end{frame}
% % All of the following is optional and typically not needed.
% \appendix
% \section<presentation>*{\appendixname}
% \subsection<presentation>*{For Further Reading}
% \begin{frame}[allowframebreaks]
% \frametitle<presentation>{For Further Reading}
% \begin{thebibliography}{10}
% \beamertemplatebookbibitems
% % Start with overview books.
% \bibitem{Author1990}
% A.~Author.
% \newblock {\em Handbook of Everything}.
% \newblock Some Press, 1990.
% \beamertemplatearticlebibitems
% % Followed by interesting articles. Keep the list short.
% \bibitem{Someone2000}
% S.~Someone.
% \newblock On this and that.
% \newblock {\em Journal of This and That}, 2(1):50--100,
% 2000.
% \end{thebibliography}
% \end{frame}
\end{document}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment