266
+ − 1
State by itself is quite harmless. However, mutable state is the big offender. Especially if it is shared. What exactly is mutable state? Any state that can change.
+ − 2
+ − 3
====================
+ − 4
264
+ − 5
Why functional programming?
+ − 6
+ − 7
Nice article and pictures of multicores.
+ − 8
+ − 9
https://sigma.software/about/media/pillars-functional-programming-part-1
+ − 10
265
+ − 11
=====================
+ − 12
Maven repository for jars (par collections for example)
+ − 13
+ − 14
https://search.maven.org/search?q=g:org.scala-lang.modules%20a:scala-parser-combinators_2.13
264
+ − 15
+ − 16
=====================
+ − 17
lectures on scala
+ − 18
+ − 19
https://github.com/scalasummerschool/lectures
+ − 20
265
+ − 21
=====================
+ − 22
Scala course at Lund University
264
+ − 23
265
+ − 24
https://github.com/lunduniversity/introprog
+ − 25
http://cs.lth.se/pgk/download/
264
+ − 26
=====================
+ − 27
an argument for pure functions and programming
+ − 28
+ − 29
https://dev.to/pietvandongen/pure-bliss-with-pure-functions-in-java-1mba
+ − 30
+ − 31
=====================
265
+ − 32
Abstract syntax tree generation
+ − 33
+ − 34
https://stackoverflow.com/questions/10419101/how-can-i-find-the-statements-in-a-scala-program-from-within-a-compiler-plugin
+ − 35
+ − 36
+ − 37
=====================
264
+ − 38
95 hardest sudoku problems
+ − 39
http://www.dos486.com/sudoku/top95.txt
+ − 40
+ − 41
+ − 42
=====================
+ − 43
code example (bar code decoder)
+ − 44
+ − 45
https://habr.com/en/post/439768/
+ − 46
+ − 47
=====================
+ − 48
251
+ − 49
online tutorial for scala
+ − 50
+ − 51
https://hub.mybinder.org/user/sbrunk-almond-examples-yw61qxqu/lab
+ − 52
=====================
+ − 53
253
+ − 54
Scala best practices
+ − 55
https://nrinaudo.github.io/scala-best-practices/index.html
+ − 56
=====================
251
+ − 57
194
+ − 58
codejudge
+ − 59
+ − 60
https://www.codejudge.net/docs/reference
+ − 61
+ − 62
+ − 63
Race Track game
+ − 64
Game of life
229
+ − 65
+ − 66
===================
+ − 67
https://meta.plasm.us/posts/2013/03/28/better-scala-syntax-highlighting-for-hakyll/
194
+ − 68
+ − 69
===================
192
+ − 70
CS quotes
+ − 71
https://henrikwarne.com/2016/04/17/more-good-programming-quotes/
+ − 72
https://henrikwarne.com/2017/09/16/more-good-programming-quotes-part-2/
+ − 73
181
+ − 74
192
+ − 75
===================
+ − 76
“To have another language is to possess a second soul.â€
+ − 77
+ − 78
― attributed Charlemagne, Emperor of the Carolingian Empire (Western Europe)
191
+ − 79
+ − 80
192
+ − 81
-------------------
+ − 82
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.
+ − 83
-------------------
+ − 84
+ − 85
8. Forced Null-Checks
+ − 86
+ − 87
In Java, the method signature of a public method does not tell you if
+ − 88
a returned value can be null or not. Take this signature for instance:
+ − 89
+ − 90
public List<Item> getSelectedItems()
181
+ − 91
192
+ − 92
What happens when no item is selected? Does this method then return
+ − 93
null? Or does it return an empty list? We do not know for sure without
+ − 94
looking into the implementation of this method (except we are very
+ − 95
lucky in this case that the signature has a good javadoc description
+ − 96
of the return type). There are two mistakes a developer could possibly
+ − 97
make: (1)fForgetting to check the return value for null when it can be
+ − 98
null, resulting in the famous NullPointerException, or; (2) checking
+ − 99
it for null although it never can be null, resulting in needless code.
181
+ − 100
192
+ − 101
140
+ − 102
+ − 103
122
+ − 104
why functional programming matters
+ − 105
http://queue.acm.org/detail.cfm?id=2038036
+ − 106
192
+ − 107
why pure functions
+ − 108
http://www.deadcoderising.com/2017-06-13-why-pure-functions-4-benefits-to-embrace-2/
122
+ − 109
+ − 110
+ − 111
BufferOverflow
+ − 112
http://seclists.org/oss-sec/2017/q2/344
+ − 113
192
+ − 114
============
+ − 115
+ − 116
wartremover
+ − 117
https://blog.knoldus.com/2017/06/15/remove-scala-warts-with-wartremover/
122
+ − 118
=========
+ − 119
Intro Videos
+ − 120
https://www.youtube.com/watch?v=ugHsIj60VfQ (30:00 slide about functions)
+ − 121
+ − 122
https://www.youtube.com/channel/UC1VAdzkoY7M2e3msbW9Ur8w/videos?shelf_id=0&view=0&sort=dd
+ − 123
+ − 124
+ − 125
===============
+ − 126
Scala warts
+ − 127
http://www.lihaoyi.com/post/WartsoftheScalaProgrammingLanguage.html
+ − 128
+ − 129
https://www.reddit.com/r/scala/comments/616n3y/could_anyone_recommend_scala_resources_that/
+ − 130
================
+ − 131
+ − 132
+ − 133
online compiler
+ − 134
https://scalafiddle.io/
+ − 135
http://www.scala-lang.org/blog/2017/05/19/scastie.html
+ − 136
+ − 137
+ − 138
------------------
+ − 139
Book
+ − 140
http://twitter.github.io/effectivescala/
+ − 141
-------------------
+ − 142
+ − 143
Very good explanation of what being functional programming means
+ − 144
https://dotboris.github.io/2017/04/07/functional-programming/
+ − 145
+ − 146
95
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
+ − 147
Source of exercises
114
+ − 148
http://exercism.io
122
+ − 149
https://www.scala-exercises.org/
+ − 150
http://www.sofiacole.com/technology/adopting-scala-the-next-steps/
114
+ − 151
+ − 152
115
+ − 153
https://medium.com/@markcanlasnyc/scala-saturday-functions-for-the-object-oriented-4218f9ed192b#.dw8x8zxvb
+ − 154
+ − 155
--------------------
+ − 156
Map-Reduce in Scala
+ − 157
+ − 158
https://madusudanan.com/blog/scala-tutorials-part-9-intro-to-functional-programming/
+ − 159
+ − 160
+ − 161
--------------------
+ − 162
bash scripting
+ − 163
+ − 164
https://likegeeks.com/bash-script-easy-guide/
120
+ − 165
https://likegeeks.com/linux-bash-scripting-awesome-guide-part3/
+ − 166
+ − 167
+ − 168
-------------------
+ − 169
collatz
122
+ − 170
http://codepen.io/benlorantfy/pen/KWzXoX
+ − 171
+ − 172
-------------------
+ − 173
cheat sheets
+ − 174
+ − 175
https://mbonaci.github.io/scala/
+ − 176
http://alvinalexander.com/downloads/scala/Scala-Cheat-Sheet-devdaily.pdf
+ − 177
http://homepage.cs.uiowa.edu/~tinelli/classes/022/Fall13/Notes/scala-quick-reference.pdf
+ − 178
+ − 179
https://www.youtube.com/watch?v=RZEZp8fqn_0
+ − 180
+ − 181
-------------------
+ − 182
scala books
+ − 183
http://underscore.io/training/
+ − 184
+ − 185
-------------------
+ − 186
dependent types in Scala
+ − 187
https://stepik.org/course/ThCS-Introduction-to-programming-with-dependent-types-in-Scala-2294/
+ − 188
+ − 189
+ − 190
--------------------
+ − 191
chess engine in scala
+ − 192
http://marianogappa.github.io/software/2017/03/24/ostinato-a-chess-engine-written-in-scala-that-runs-on-the-browser-docker-and-the-repl/
+ − 193
https://en.lichess.org
+ − 194
+ − 195
---------------------
+ − 196
scala code quality
+ − 197
https://www.reddit.com/r/scala/comments/616n3y/could_anyone_recommend_scala_resources_that/