896 hand using only the ``plain'' regular expressions from the |
896 hand using only the ``plain'' regular expressions from the |
897 inductive datatype. |
897 inductive datatype. |
898 |
898 |
899 \subsection*{More Info} |
899 \subsection*{More Info} |
900 |
900 |
901 |
901 There is much more to Scala, then I can possibly describe |
|
902 here. There are a number of free books about Scala and of |
|
903 course lots of help online. |
|
904 |
|
905 While I am quite enthusiastic about Scala, I am happy to admit |
|
906 that it has more than a fair share of faults. The problem of |
|
907 having to give an explicit type to {\tt toSet}, but not {\tt |
|
908 toList} is one of them. There are also many ``deep'' things |
|
909 about types in Scala, which even to me seasoned functional |
|
910 programmer are puzzling. While implicits are great, they |
|
911 can also be a source of great head-aches, for example |
|
912 |
|
913 \begin{quote} |
|
914 \begin{alltt} |
|
915 scala> List (1, 2, 3) contains "your mom" |
|
916 res1: Boolean = false |
|
917 \end{alltt} |
|
918 \end{quote} |
|
919 |
|
920 \noindent This should raise a typing-error, but it does not. |
|
921 |
|
922 While Scala has been a success in several high-profile |
|
923 companies, there is also a company, Yammer, which first used |
|
924 Scala in their production code but then moved away from it. |
|
925 According to Wikipedia, they did not like steep learning curve |
|
926 of Scala and also that new versions of Scala often introduced |
|
927 incompatibilities. |
|
928 |
|
929 So all in all, Scala might not be a great teaching |
|
930 language, but I hope this is mitigated by the fact that I |
|
931 never require from you to write any Scala code. You only |
|
932 need to be able to read it. In the coursework you can use |
|
933 any programming language you like. If you want to use |
|
934 Scala for this, be my guest; if you do not, stick with the |
|
935 language you are most familiar with. |
902 |
936 |
903 \end{document} |
937 \end{document} |
904 |
938 |
905 %%% Local Variables: |
939 %%% Local Variables: |
906 %%% mode: latex |
940 %%% mode: latex |