cws/cw02.tex
changeset 148 ead6089209ba
parent 147 72f7dd1a3754
child 149 3a6f51bc6121
--- a/cws/cw02.tex	Fri Nov 17 02:13:40 2017 +0000
+++ b/cws/cw02.tex	Fri Nov 17 09:13:03 2017 +0000
@@ -257,7 +257,13 @@
 1728. A $6\times 6$ board is already too large to be searched
 exhaustively.\footnote{For your interest, the number of tours on
   $6\times 6$, $7\times 7$ and $8\times 8$ are 6637920, 165575218320,
-  19591828170979904, respectively.}
+  19591828170979904, respectively.}\bigskip
+
+\noindent
+\textbf{Hints:} useful list functions: \texttt{.contains(..)} checks whether an
+element is in a list, \texttt{.flatten} turns a list of lists into just a list,
+\texttt{\_::\_} puts an element on the head of the list, \texttt{.head} gives you the
+first element of a list (make sure the list is not \texttt{Nil})
 
 \subsubsection*{Tasks (file knight2.scala)}
 
@@ -294,9 +300,17 @@
 
 \noindent
 \textbf{Testing} The first tour function will be called with board
-sizes of up to $8 \times 8$. 
+sizes of up to $8 \times 8$.
+\bigskip
 
-%%\newpage
+\noindent
+\textbf{Hints:} a useful list function: \texttt{.filter(..)} filters a list according
+to a boolean function; a useful option function: \texttt{.isDefined} returns true,
+if an option is \texttt{Some(..)}; anonymous functions can be constructed using
+\texttt{(x:Int) => ...}, this functions takes an \texttt{Int} as argument
+
+
+\newpage
 \subsection*{Part 2 (3 Marks)}
 
 As you should have seen in Part 1, a naive search for tours beyond
@@ -353,6 +367,15 @@
   otherwise you will get problems with stack-overflows.\\
   \mbox{}\hfill[1 Mark]
 \end{itemize}  
+\bigskip
+
+\noindent
+\textbf{Hints:} a useful list function: \texttt{.sortBy} sorts a list according
+to a component given by the function; a function can be tested to be tail
+recursive by annotation \texttt{@tailrec}, which is made available by
+importing \texttt{scala.annotation.tailrec}
+
+
 
 \end{document}