| 
     1 CS quotes  | 
         | 
     2 https://henrikwarne.com/2016/04/17/more-good-programming-quotes/  | 
         | 
     3 https://henrikwarne.com/2017/09/16/more-good-programming-quotes-part-2/  | 
     1   | 
     4   | 
     2   | 
     5   | 
     3 =============  | 
     6 ===================  | 
         | 
     7 “To have another language is to possess a second soul.”  | 
     4   | 
     8   | 
     5 scala -Yrepl-class-based  | 
     9 ― attributed Charlemagne, Emperor of the  Carolingian Empire (Western Europe)  | 
         | 
    10   | 
         | 
    11   | 
         | 
    12 -------------------  | 
         | 
    13 FP strongly discourages changing the state of a variable once initialized. This has a profound effect upon concurrency. If you can’t change the state of a variable, you can’t have a race condition. If you can’t update the value of a variable, you can’t have a concurrent update problem.  | 
         | 
    14 -------------------  | 
         | 
    15   | 
         | 
    16 8. Forced Null-Checks  | 
         | 
    17   | 
         | 
    18 In Java, the method signature of a public method does not tell you if  | 
         | 
    19 a returned value can be null or not. Take this signature for instance:  | 
         | 
    20   | 
         | 
    21 public List<Item> getSelectedItems()  | 
         | 
    22   | 
         | 
    23 What happens when no item is selected? Does this method then return  | 
         | 
    24 null? Or does it return an empty list? We do not know for sure without  | 
         | 
    25 looking into the implementation of this method (except we are very  | 
         | 
    26 lucky in this case that the signature has a good javadoc description  | 
         | 
    27 of the return type). There are two mistakes a developer could possibly  | 
         | 
    28 make: (1)fForgetting to check the return value for null when it can be  | 
         | 
    29 null, resulting in the famous NullPointerException, or; (2) checking  | 
         | 
    30 it for null although it never can be null, resulting in needless code.  | 
         | 
    31   | 
         | 
    32   | 
     6   | 
    33   | 
     7   | 
    34   | 
     8 why functional programming matters  | 
    35 why functional programming matters  | 
     9 http://queue.acm.org/detail.cfm?id=2038036  | 
    36 http://queue.acm.org/detail.cfm?id=2038036  | 
    10   | 
    37   | 
    11 Louvre Abu Dhabi  | 
    38 why pure functions  | 
    12 https://channel9.msdn.com/Events/FSharp-Events/fsharpConf-2016/The-3D-Geometry-of-Louvre-Abu-Dhabi  | 
    39 http://www.deadcoderising.com/2017-06-13-why-pure-functions-4-benefits-to-embrace-2/  | 
    13 (explanation why he choose functional programming)  | 
         | 
    14 =============  | 
         | 
    15 some examples  | 
         | 
    16 https://wibisono.github.io/fp-oops/docs/redbook/monoid.html  | 
         | 
    17   | 
    40   | 
    18 =============  | 
         | 
    19   | 
    41   | 
    20 BufferOverflow  | 
    42 BufferOverflow  | 
    21 http://seclists.org/oss-sec/2017/q2/344  | 
    43 http://seclists.org/oss-sec/2017/q2/344  | 
    22   | 
    44   | 
    23 Data sources  | 
    45 ============  | 
    24 https://www.forbes.com/sites/bernardmarr/2016/02/12/big-data-35-brilliant-and-free-data-sources-for-2016/#60d25011b54d  | 
    46   | 
         | 
    47 wartremover  | 
         | 
    48 https://blog.knoldus.com/2017/06/15/remove-scala-warts-with-wartremover/  | 
    25 =========  | 
    49 =========  | 
    26 Intro Videos  | 
    50 Intro Videos  | 
    27 https://www.youtube.com/watch?v=ugHsIj60VfQ (30:00 slide about functions)  | 
    51 https://www.youtube.com/watch?v=ugHsIj60VfQ (30:00 slide about functions)  | 
    28   | 
    52   | 
    29 https://www.youtube.com/channel/UC1VAdzkoY7M2e3msbW9Ur8w/videos?shelf_id=0&view=0&sort=dd  | 
    53 https://www.youtube.com/channel/UC1VAdzkoY7M2e3msbW9Ur8w/videos?shelf_id=0&view=0&sort=dd  | 
    53   | 
    77   | 
    54 Source of exercises  | 
    78 Source of exercises  | 
    55     http://exercism.io  | 
    79     http://exercism.io  | 
    56     https://www.scala-exercises.org/  | 
    80     https://www.scala-exercises.org/  | 
    57     http://www.sofiacole.com/technology/adopting-scala-the-next-steps/  | 
    81     http://www.sofiacole.com/technology/adopting-scala-the-next-steps/  | 
    58      | 
         | 
    59 Reverse polish notation exercise  | 
         | 
    60 http://www.codeabbey.com/index/task_view/reverse-polish-notation  | 
         | 
    61   | 
    82   | 
    62 Game of 2048 (deterministic version of prefilling  | 
         | 
    63 the board and not letting any new tiles in; finding the  | 
         | 
    64 maximum)  | 
         | 
    65 http://www.codeabbey.com/index/task_view/game-of-2048  | 
         | 
    66   | 
    83   | 
    67 https://medium.com/@markcanlasnyc/scala-saturday-functions-for-the-object-oriented-4218f9ed192b#.dw8x8zxvb  | 
    84 https://medium.com/@markcanlasnyc/scala-saturday-functions-for-the-object-oriented-4218f9ed192b#.dw8x8zxvb  | 
    68   | 
    85   | 
    69 --------------------  | 
    86 --------------------  | 
    70 Map-Reduce in Scala  | 
    87 Map-Reduce in Scala  | 
   107 https://en.lichess.org  | 
   124 https://en.lichess.org  | 
   108   | 
   125   | 
   109 ---------------------  | 
   126 ---------------------  | 
   110 scala code quality  | 
   127 scala code quality  | 
   111 https://www.reddit.com/r/scala/comments/616n3y/could_anyone_recommend_scala_resources_that/  | 
   128 https://www.reddit.com/r/scala/comments/616n3y/could_anyone_recommend_scala_resources_that/  | 
   112   | 
         | 
   113   | 
         | 
   114   | 
         | 
   115   | 
         | 
   116 ---------------------  | 
         | 
   117 Scala resources  | 
         | 
   118   | 
         | 
   119 https://danielwestheide.com/scala/neophytes.html  | 
         | 
   120   | 
         | 
   121   | 
         | 
   122   | 
         | 
   123   | 
         | 
   124   | 
         | 
   125   | 
         | 
   126   | 
         | 
   127 functional programming  | 
         | 
   128 ----------------------  | 
         | 
   129 Functional Data Structures  | 
         | 
   130 https://cs.uwaterloo.ca/~plragde/flaneries/FDS/index.html  | 
         | 
   131   | 
         | 
   132 Okasaki  | 
         | 
   133 http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf  | 
         |