32 \end{tabular}} |
32 \end{tabular}} |
33 |
33 |
34 \normalsize |
34 \normalsize |
35 \begin{center} |
35 \begin{center} |
36 \begin{tabular}{ll} |
36 \begin{tabular}{ll} |
37 Email: & christian.urban at kcl.ac.uk\\ |
37 Email: & christian.urban at kcl.ac.uk\\ |
38 Office: & S1.27 (1st floor Strand Building)\\ |
38 Office: & N7.07 (North Wing, Bush House)\\ |
39 Slides \& Code: & KEATS |
39 Slides \& Code: & KEATS\medskip\\ |
|
40 Scala Office & \\ |
|
41 Hours: & Thursdays 11 -- 13\\ |
40 \end{tabular} |
42 \end{tabular} |
41 \end{center} |
43 \end{center} |
42 |
44 |
43 |
45 |
44 \end{frame} |
46 \end{frame} |
45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
46 |
48 |
|
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
50 \begin{frame}[t,fragile] |
|
51 \frametitle{Mea Culpa} |
|
52 \bigskip |
|
53 |
|
54 \mbox{\hspace{-4mm}}CW6, Part 3 (deadline 21 December)\bigskip\medskip |
|
55 \small |
|
56 \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-4mm] |
|
57 val blchip_portfolio = |
|
58 List("GOOG", "AAPL", "MSFT", "IBM", "FB", |
|
59 "YHOO", "AMZN", "BIDU") |
|
60 |
|
61 val rstate_portfolio = |
|
62 List("PLD", "PSA", "AMT", "AIV", "AVB", |
|
63 "BXP", "CBG", "CCI", |
|
64 "DLR", "EQIX", "EQR", "ESS", "EXR", |
|
65 "FRT", "GGP", "HCP") |
|
66 \end{lstlisting}\bigskip |
|
67 |
|
68 \onslide<2>{The results in the CW are calculated with YHOO and CBG deleted.} |
|
69 |
|
70 \only<2>{ |
|
71 \begin{textblock}{6}(8.5,6.6) |
|
72 \begin{tikzpicture} |
|
73 \node (B0) at (0,0) {}; |
|
74 \node (B1) at (0,0.5) {}; |
|
75 \node (B2) at (1.2,0) {}; |
|
76 \node (B3) at (1.2,0.5) {}; |
|
77 \draw [red,line width=1mm] (B0) -- (B3); |
|
78 \draw [red,line width=1mm] (B1) -- (B2); |
|
79 \end{tikzpicture} |
|
80 \end{textblock}} |
|
81 |
|
82 \only<2>{ |
|
83 \begin{textblock}{6}(10.5,9.9) |
|
84 \begin{tikzpicture} |
|
85 \node (B0) at (0,0) {}; |
|
86 \node (B1) at (0,0.5) {}; |
|
87 \node (B2) at (1.2,0) {}; |
|
88 \node (B3) at (1.2,0.5) {}; |
|
89 \draw [red,line width=1mm] (B0) -- (B3); |
|
90 \draw [red,line width=1mm] (B1) -- (B2); |
|
91 \end{tikzpicture} |
|
92 \end{textblock}} |
|
93 \end{frame} |
|
94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
95 |
|
96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
97 \begin{frame}[c] |
|
98 \frametitle{Mea Culpa 2} |
|
99 |
|
100 Avoid at all costs, even in comments |
|
101 |
|
102 \begin{itemize} |
|
103 \item \texttt{var} \only<2>{$\quad\Rightarrow\;$\texttt{Var}} |
|
104 \item \texttt{return} \only<2>{$\quad\Rightarrow\;$\texttt{Return}} |
|
105 \item \texttt{.par} |
|
106 \item \texttt{ListBuffer} |
|
107 \item \texttt{mutable} |
|
108 \end{itemize} |
|
109 |
|
110 \end{frame} |
|
111 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
112 |
|
113 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
114 \begin{frame}[t] |
|
115 \frametitle{For-Comprehensions Again} |
|
116 |
|
117 \begin{center} |
|
118 \begin{tikzpicture}[scale=1, |
|
119 node/.style={ |
|
120 rectangle,rounded corners=3mm, |
|
121 very thick,draw=black!50, |
|
122 minimum height=18mm, minimum width=20mm, |
|
123 top color=white,bottom color=black!20}] |
|
124 |
|
125 \node (A0) at (0.1,0) {\texttt{\textcolor{purple}{\textbf{for}} (\alert<2->{n} <- List(}}; |
|
126 \node (A1) at (2.3,0) {\texttt{\phantom{,}1,}}; |
|
127 \node (A2) at (3.2,0) {\texttt{\phantom{,}2,}}; |
|
128 \node (A3) at (4.1,0) {\texttt{\phantom{,}3,}}; |
|
129 \node (A4) at (5.0,0) {\texttt{\phantom{,}4,}}; |
|
130 \node (A5) at (5.9,0) {\texttt{\phantom{))}5))}}; |
|
131 \node (A6) at (8,0) {\texttt{\textcolor{purple}{\textbf{yield}} \alert<2->{n\,*\,n}}}; |
|
132 |
|
133 \onslide<2->{ |
|
134 \node (B0) at (1.4,-3) {\texttt{List(}}; |
|
135 \node (B1) at (2.3,-3) {\texttt{\phantom{,}1,}}; |
|
136 \node (B2) at (3.6,-3) {\texttt{\phantom{,}4,}}; |
|
137 \node (B3) at (4.9,-3) {\texttt{\phantom{,}9,}}; |
|
138 \node (B4) at (6.2,-3) {\texttt{\phantom{,}16,}}; |
|
139 \node (B5) at (7.5,-3) {\texttt{\phantom{,}25)}};} |
|
140 |
|
141 \onslide<2->{ |
|
142 \draw [->,line width=1mm] (A1.south) -- (B1.north); |
|
143 \draw [->,line width=1mm] (A2.south) -- (B2.north); |
|
144 \draw [->,line width=1mm] (A3.south) -- (B3.north); |
|
145 \draw [->,line width=1mm] (A4.south) -- (B4.north); |
|
146 \draw [->,line width=1mm] (A5.south) -- (B5.north);} |
|
147 |
|
148 \onslide<2->{ |
|
149 \node (Q1) at (-0.45,-0.1) {}; |
|
150 \node (Q2) at (-0.45,-2.8) {}; |
|
151 \node (Q3) at (-0.45,-2.95) {\alert<2->{\texttt{n\,*\,n:}}}; |
|
152 \draw [->,red,line width=1mm] (Q1.south) -- (Q2.north);} |
|
153 \end{tikzpicture} |
|
154 \end{center} |
|
155 |
|
156 \onslide<3>{This is for when the for-comprehension\\ \textbf{yields / produces} a result.} |
|
157 |
|
158 \end{frame} |
|
159 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
160 |
|
161 |
|
162 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
163 \begin{frame}[t] |
|
164 \frametitle{For-Comprehensions Again} |
|
165 |
|
166 \begin{center} |
|
167 \begin{tikzpicture}[scale=1, |
|
168 node/.style={ |
|
169 rectangle,rounded corners=3mm, |
|
170 very thick,draw=black!50, |
|
171 minimum height=18mm, minimum width=20mm, |
|
172 top color=white,bottom color=black!20}] |
|
173 |
|
174 \node (A0) at (0,0) |
|
175 {\texttt{\textcolor{purple}{\textbf{for}} (n <- List(1, 2, 3, 4, 5)) |
|
176 \textcolor{purple}{\textbf{yield}} n\,*\,n}}; |
|
177 |
|
178 \node (A1) at (0,-1.5) {\LARGE\textbf{vs}}; |
|
179 |
|
180 \node (A2) at (0,-3) |
|
181 {\texttt{\textcolor{purple}{\textbf{for}} (n <- List(1, 2, 3, 4, 5)) println(n)}}; |
|
182 \end{tikzpicture} |
|
183 \end{center}\bigskip |
|
184 |
|
185 |
|
186 The second version is in case the for \textbf{does not} |
|
187 produce any result. |
|
188 |
|
189 \end{frame} |
|
190 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
191 |
|
192 |
|
193 |
|
194 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
47 \begin{frame}[t] |
195 \begin{frame}[t] |
48 \frametitle{\begin{tabular}{c}Why Scala?\end{tabular}} |
196 \frametitle{\begin{tabular}{c}Why Scala?\end{tabular}} |
49 |
197 |
50 |
198 |
51 \begin{itemize} |
199 \begin{itemize} |