handouts/pep-ho.tex
changeset 265 59779ce322a6
parent 264 ecd989eee8bd
child 269 86a85865e772
equal deleted inserted replaced
264:ecd989eee8bd 265:59779ce322a6
    80 \begin{quote}
    80 \begin{quote}
    81 \url{http://www.scala-lang.org}\medskip
    81 \url{http://www.scala-lang.org}\medskip
    82 \end{quote}
    82 \end{quote}
    83 
    83 
    84 \noindent
    84 \noindent
    85 If you are interested there are also experimental backends of Scala
    85 If you are interested, there are also experimental backends of Scala
    86 for producing code under Android (\url{http://scala-android.org}); for
    86 for producing code under Android (\url{http://scala-android.org}); for
    87 generating JavaScript code (\url{https://www.scala-js.org}); and there
    87 generating JavaScript code (\url{https://www.scala-js.org}); and there
    88 is work under way to have a native Scala compiler generating X86-code
    88 is work under way to have a native Scala compiler generating X86-code
    89 (\url{http://www.scala-native.org}). Though be warned these backends
    89 (\url{http://www.scala-native.org}). Though be warned these backends
    90 are still rather beta or even alpha.
    90 are still rather beta or even alpha.
   157 Also IntelliJ includes plugins for Scala. \underline{\textbf{BUT}}, 
   157 Also IntelliJ includes plugins for Scala. \underline{\textbf{BUT}}, 
   158 I do \textbf{not} recommend the usage of either Eclipse or IntelliJ for PEP: these IDEs
   158 I do \textbf{not} recommend the usage of either Eclipse or IntelliJ for PEP: these IDEs
   159 seem to make your life harder, rather than easier, for the small
   159 seem to make your life harder, rather than easier, for the small
   160 programs we will write in this module. They are really meant to be used
   160 programs we will write in this module. They are really meant to be used
   161 when you have a million-lines codebase, rather than our
   161 when you have a million-lines codebase, rather than our
   162 ``toy-programs''\ldots{}for example why on earth am I required to create a
   162 ``toy-programs'' we will write in PEP\ldots{}for example why on earth am I required to create a
   163 completely new project with several subdirectories when I just want to
   163 completely new project with several subdirectories when I just want to
   164 try out 20-lines of Scala code? Your mileage may vary though. ;o)
   164 try out 20-lines of Scala code? Your mileage may vary though. ;o)
   165 
   165 
   166 \subsection*{Why Functional Programming?}
   166 \subsection*{Why Functional Programming?}
   167 
   167 
   430 scala> true && false
   430 scala> true && false
   431 scala> 1 > 1.0
   431 scala> 1 > 1.0
   432 scala> "12345".length
   432 scala> "12345".length
   433 scala> List(1,2,1).size
   433 scala> List(1,2,1).size
   434 scala> Set(1,2,1).size
   434 scala> Set(1,2,1).size
       
   435 scala> List(1) == List(1)
       
   436 scala> Array(1) == Array(1)
       
   437 scala> Array(1).sameElements(Array(1))
   435 \end{lstlisting}\smallskip
   438 \end{lstlisting}\smallskip
   436 
   439 
   437 \noindent
   440 \noindent
   438 Please take the Scala REPL seriously: If you want to take advantage of my
   441 Please take the Scala REPL seriously: If you want to take advantage of my
   439 reference implementation for the assignments, you will need to be
   442 reference implementation for the assignments, you will need to be