--- a/handouts/pep-ho.tex Wed Nov 09 20:51:29 2022 +0000
+++ b/handouts/pep-ho.tex Thu Nov 10 09:52:40 2022 +0000
@@ -124,7 +124,7 @@
\begin{document}
-\fnote{\copyright{} Christian Urban, King's College London, 2017, 2018, 2019, 2020, 2021}
+\fnote{\copyright{} Christian Urban, King's College London, 2017, 2018, 2019, 2020, 2021, 2022}
%\begin{tcolorbox}[breakable,size=fbox,boxrule=1pt,pad at break*=1mm,colback=cellbackground,colframe=cellborder]
% abd
@@ -170,7 +170,7 @@
\noindent\alert
Just make sure you are downloading the ``battle tested'' version of
Scala \textbf{2.13} This is the one I am going to use in the lectures and
-in the coursework. The newer Scala 3.0 \& 3.1 still have some
+in the coursework. The newer Scala 3.1 \& 3.2 still have some
features not fully implemented.\bigskip
\noindent
@@ -221,7 +221,18 @@
\end{boxedminipage}
\end{figure}
-What I like most about VS Code is that it provides easy access to the
+ Actually \alert last year I switched to VS Codium, which is VS Code minus
+all the telemetry that is normally sent to Microsoft. Apart from the
+ telemetry, it works pretty much the same as the original but is driven
+by a dedicated community, rather than a big company. You can download
+VS Codium from
+
+\begin{quote}
+\url{https://vscodium.com}
+\end{quote}
+
+
+What I like most about VS Code/Codium is that it provides easy access to the
Scala REPL. But if you prefer another editor for coding, it is also
painless to work with Scala completely on the command line (as you might
have done with \texttt{g++} in the earlier part of PEP). For the
@@ -239,8 +250,9 @@
But you should be careful if you use them for your coursework: they
are meant to play around, not really for serious work.
-As one might expect, Scala can be used with the heavy-duty IDEs Eclipse and IntelliJ.
-A ready-made Scala bundle for Eclipse is available from
+As one might expect, Scala can be used with the heavy-duty IDEs
+Eclipse and IntelliJ. A ready-made Scala bundle for Eclipse is
+available from
\begin{quote}
\url{http://scala-ide.org/download/sdk.html}
@@ -447,7 +459,7 @@
example, that Java will at some point in the future support
pattern-matching, which has been used for example in SML for at least
40(!) years. See
-\url{http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html}.
+\url{https://openjdk.org/projects/amber/design-notes/patterns/pattern-matching-for-java}.
Automatic garbage collection was included in Java in 1995; the
functional language LISP had this already in 1958. Generics were added
to Java 5 in 2004; the functional language SML had it since 1990.
@@ -458,11 +470,13 @@
yesteryear.}\medskip
\noindent
-If you need any after-work distractions, you might have fun reading this
-about FP (functional programming):
+If you need any after-work distractions, you might have fun reading
+this about FP (functional programming) --- you
+might have to disable your browser cookies though if you want to read
+it for free. And spoiler alert: This is tongue-in-cheek \texttt{;o)}
\begin{quote}
-\url{https://medium.com/better-programming/fp-toy-7f52ea0a947e}
+\url{https://betterprogramming.pub/fp-toy-7f52ea0a947e}
\end{quote}
\subsection*{The Very Basics}
@@ -478,7 +492,7 @@
\begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
$ scala
-Welcome to Scala 2.13.6 (OpenJDK 64-Bit Server VM, Java 17).
+Welcome to Scala 2.13.9 (OpenJDK 64-Bit Server VM, Java 17.0.1).
Type in expressions for evaluation. Or try :help.
scala>
@@ -1715,7 +1729,7 @@
\end{lstlisting}
\noindent
-In Scala, we use the \code{=>} symbol:
+In Scala, we use the \code{=>} symbol for the same:
\begin{lstlisting}[language=Scala]
list.foreach(item => println(s"* $item"))/*!\annotation{Scala}!*/
@@ -1784,12 +1798,17 @@
Scala often introduced incompatibilities in old code. Also the Java
language is lately developing at lightening speed (in comparison to the past)
taking on many
-features of Scala and other languages, and it seems even it introduces
+features of Scala and other languages, and it seems it even introduces
new features on its own.
Scala is deep: After many years, I still continue to learn new technique
-for writing more elegant code.
+for writing more elegant code. Unfortunately, I have not yet managed to
+switch over my code to Scala 3.0 due to time constraints. Scala 3 seems
+to iron out a number of snags from Scala 2, but why on earth are they
+introducing Python-esque intendation and why on earth are they
+re-introducing the \texttt{then}-keyword in Scala 3, when I just about got
+comfortable without it?
%So all in all, Scala might not be a great teaching language,
%but I hope this is mitigated by the fact that I never require