Scala
Introduction
Some features of the language
- Functional and Object Orientated
- Use of immutable Data Structure
- Rich Collections Library
- Better Concurrency Support
To get this to work I downloaded scala and intellij.
Functional Programming
Some definitions
- Immutability is when we can not allowed to change a variable. Not changing a value means parallelism will work better
- Expression are something yields a value. e.g. x+y and have not side effects
- Statements is code which does something. e.g. do(something) and have side effects
- Function is a a relation between a set of inputs and a set of outputs with the property that each input is related to exactly one output.
- Pure always has the same output, easier to test, parallelisation
- Impure may not have the same output
- High Order Functions are function which take functions as an argument
VS Code
I used https://shunsvineyard.info/2020/11/20/setting-up-vs-code-for-scala-development-on-wsl/ for installing with VS Code.