wsheets/wsh01.tex
changeset 442 c86e7dd198bf
parent 441 3bfe81972674
child 444 7a0735db4788
equal deleted inserted replaced
441:3bfe81972674 442:c86e7dd198bf
       
     1 % !TEX program = xelatex
       
     2 \documentclass{article}
       
     3 \usepackage{../styles/style}
       
     4 \usepackage{../styles/langs}
       
     5 \usepackage{tikz}
       
     6 \usepackage{pgf}
       
     7 \usepackage{marvosym}
       
     8 \usepackage{boxedminipage}
       
     9 
       
    10 \lstset{escapeinside={/*!}{!*/}}
       
    11 \newcommand{\annotation}[1]{\hfill\footnotesize{}#1}
       
    12 
       
    13 \usepackage{menukeys}
       
    14 
       
    15 
       
    16 % Exact colors from NB
       
    17 \usepackage[breakable]{tcolorbox}
       
    18 \definecolor{incolor}{HTML}{303F9F}
       
    19 \definecolor{outcolor}{HTML}{D84315}
       
    20 \definecolor{cellborder}{HTML}{CFCFCF}
       
    21 \definecolor{cellbackground}{HTML}{F7F7F7}
       
    22 
       
    23 
       
    24     
       
    25 \begin{document}
       
    26 \fnote{\copyright{} Christian Urban, King's College London, 2022}
       
    27 
       
    28 \section*{Scala Worksheet 1}
       
    29 
       
    30 Please install Scala on your work-machine: You should have
       
    31 Scala up and running, and also an IDE that allows you to
       
    32 access the Scala REPL. Some instructions are given at
       
    33 
       
    34 \begin{center}
       
    35 \url{https://www.scala-lang.org/download/2.13.10.html}
       
    36 \end{center}  
       
    37 
       
    38 \subsubsection*{MacOSX}
       
    39 
       
    40 \begin{itemize}
       
    41 \item[0)] (if needed) \texttt{brew install java} \;\;or\;\; \texttt{brew reinstall java}
       
    42 \item[1)] \texttt{brew install scala@2.13}
       
    43 \end{itemize}
       
    44 
       
    45 \noindent Another method to install Scala on MacOSX
       
    46 
       
    47 \begin{itemize} 
       
    48 \item[1)] \texttt{curl -s "https://get.sdkman.io" | bash}
       
    49 \item[2)] \texttt{sdk install scala 2.13.10}  
       
    50 \end{itemize}
       
    51 
       
    52 \subsubsection*{Windows / Linux Ubuntu}
       
    53 
       
    54 \begin{itemize}
       
    55 \item[0)] (if needed) \texttt{sudo apt-get remove scala-library scala}
       
    56 \item[1)] {\fontsize{8.5}{8.5}\selectfont\texttt{sudo wget https://downloads.lightbend.com/scala/2.13.10/scala-2.13.7.deb}}
       
    57 \item[2)] \texttt{sudo dpkg -i scala-2.13.10.deb}  
       
    58 \end{itemize}
       
    59 
       
    60 \noindent
       
    61 Other Linux distros: \texttt{sudo apt-get scala}\bigskip
       
    62 
       
    63 \noindent In the end you should have something running like
       
    64 
       
    65 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
       
    66 $ scala
       
    67 Welcome to Scala 2.13.10 (OpenJDK 64-Bit Server VM, Java 17.0.1).
       
    68 Type in expressions for evaluation. Or try :help.
       
    69 
       
    70 scala>
       
    71 \end{lstlisting}%$
       
    72 
       
    73 \newpage
       
    74 
       
    75 \subsection*{Task 1}
       
    76 
       
    77 `Play' with the Scala REPL and try out the following querries. Observe
       
    78 what Scala responds.
       
    79 
       
    80 \begin{lstlisting}[numbers=none]
       
    81 scala> 2 + 2
       
    82 scala> 1 / 2
       
    83 scala> 1.0 / 2
       
    84 scala> 1 / 2.0
       
    85 scala> 1 / 0
       
    86 scala> 1.0 / 0.0
       
    87 scala> true == false
       
    88 scala> true && false
       
    89 scala> 1 > 1.0
       
    90 scala> "12345".length
       
    91 scala> List(1,2,1).size
       
    92 scala> Set(1,2,1).size
       
    93 scala> List(1) == List(1)
       
    94 scala> Set(1,2,3) == Set(3,2,1)
       
    95 scala> Array(1) == Array(1)
       
    96 scala> Array(1).sameElements(Array(1))
       
    97 \end{lstlisting}
       
    98 
       
    99 \subsection*{Task 2 (Vals)}
       
   100 
       
   101 scala> val z = 42
       
   102 scala> z = z + 1
       
   103 scala> val z = 466
       
   104 
       
   105 \subsection*{Task 3}
       
   106 
       
   107 \begin{lstlisting}[numbers=none]
       
   108 scala> println("Hello " ++ "World")
       
   109 scala> 
       
   110 \end{lstlisting}
       
   111 
       
   112 \begin{lstlisting}[numbers=none]
       
   113 scala> println("Hello " ++ "World")
       
   114 scala> 
       
   115 \end{lstlisting}
       
   116 
       
   117 \end{document}
       
   118 
       
   119 %%% Local Variables: 
       
   120 %%% mode: latex
       
   121 %%% TeX-master: t
       
   122 %%% End: