# HG changeset patch # User Christian Urban # Date 1478774405 0 # Node ID b6cb302633eb618a6a3fd16538497e8a8e34af6e # Parent 45557ad18ea677a2a9ca1326072192316b48b36c updated diff -r 45557ad18ea6 -r b6cb302633eb progs/lecture1.scala --- a/progs/lecture1.scala Thu Nov 10 04:02:45 2016 +0000 +++ b/progs/lecture1.scala Thu Nov 10 10:40:05 2016 +0000 @@ -20,8 +20,9 @@ (1 until 10).toList // an element in a list -List(1, 2, 3, 1)(0) -List(1, 2, 3, 1)(3) +val lst = List(1, 2, 3, 1) +lst(0) +lst(2) 1::2::3::Nil List(1, 2, 3) ::: List(4, 5, 6) @@ -31,8 +32,7 @@ println("test") - -val tst = "This is a " ++ "test\n" +val tst = "This is a " + "test\n" println(tst) val lst = List(1,2,3,1) @@ -40,6 +40,8 @@ println(lst.toString) println(lst.mkString("\n")) +println(lst.mkString(", ")) + // some methods take more than one argument println(lst.mkString("[", ",", "]")) diff -r 45557ad18ea6 -r b6cb302633eb slides/slides01.pdf Binary file slides/slides01.pdf has changed diff -r 45557ad18ea6 -r b6cb302633eb slides/slides01.tex --- a/slides/slides01.tex Thu Nov 10 04:02:45 2016 +0000 +++ b/slides/slides01.tex Thu Nov 10 10:40:05 2016 +0000 @@ -79,11 +79,14 @@ \frametitle{Why Scala?} \begin{itemize} -\item compiles to the JVM (also JavaScript, X86)\medskip +\item compiles to the JVM\\ (also JavaScript, native X86 in the works)\medskip \item integrates seamlessly with Java\medskip -\item combines {\bf functional} and {\bf object-oriented} programming\medskip -\item allows often to write more elegant code -\end{itemize} +\item combines \underline{\bf functional} and {\bf object-oriented} programming\bigskip +\item often one can write very concise and elegant code +\end{itemize}\bigskip\medskip + +\small +alternatives: Elm, Haskell, Ocaml, ML, Lisp (Racket), \ldots \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -95,31 +98,45 @@ {\lstset{language=java}\fontsize{12}{12}\selectfont \texttt{\lstinputlisting{Point.java}}} +\rule{11cm}{0.3mm}\\[-2mm] + {\lstset{language=scala}\fontsize{12}{12}\selectfont \texttt{\lstinputlisting{Point.scala}}} \begin{textblock}{6}(13,3) \textbf{\large Java} -\end{textblock} +\end{textblock} + -\begin{textblock}{6}(13,13.2) + +\begin{textblock}{6}(13,13.4) \textbf{\large Scala} \end{textblock} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[c] +\frametitle{Scala Tools} +\begin{itemize} +\item there is a plugin for Eclipse (called Scala IDE)\medskip +\item there is also a plugin for IntelliJ\bigskip +\item I use the venerable Emacs ;o) +\end{itemize} + +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] \frametitle{Types} \begin{itemize} -\item Base types +\item Base types\smallskip - \begin{center} - \begin{tabular}{l} + \begin{tabular}{@{}l@{}} \textcolor{codegreen}{\texttt{Int}}, \textcolor{codegreen}{\texttt{Long}}, \textcolor{codegreen}{\texttt{BigInt}}, @@ -129,12 +146,10 @@ \textcolor{codegreen}{\texttt{Char}}\\ \textcolor{codegreen}{\texttt{Boolean}} \end{tabular} - \end{center} -\item Compound types +\item Compound types \smallskip - \begin{center} - \begin{tabular}{ll} + \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\\ @@ -143,7 +158,6 @@ & pairs\\ \textcolor{codegreen}{\texttt{List[List[Int]]}} & list of lists of Int's\\ \end{tabular} - \end{center} \end{itemize} @@ -188,9 +202,6 @@ \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] @@ -204,6 +215,29 @@ \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[c] +\frametitle{Conclusion} + +\begin{itemize} +\item Scala is still under heavy development\\ (the compiler is terribly slow)\medskip +\item {\bf\url{http://www.scala-lang.org/}}\bigskip +\item it is a rather \textbf{\alert{deep}} language\ldots i.e.~gives you a lot of + rope to shoot yourself\bigskip\bigskip + +\item hope you have fun with the coursework +\end{itemize} +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[c] +\frametitle{\begin{tabular}{c}\\[3cm]\alert{Questions?}\end{tabular}} + +\mbox{} +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{document} \end{document}