Skip to content

Headstorm/ScalaSchool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScalaSchool

Welcome to Headstorm Scala School!

This series focuses on learning the core elements of Scala and pure functional programming concepts with a sprinkling of category theory.

Basics

Scala is a strongly typed, functional programming language with an OO heritage. It compiles to Java bytecode and runs on the Java Virtual Machine.

Table Of Contents

  1. Essential Scala
  2. Libraries
  3. Testing
  4. CICD

Setup

Scala and SBT

You will need to install the Scala compiler and SBT (Simple Build Tool) in order to build your Scala projects

brew install scala
brew install sbt

REPL

Use one of the following tools to run your Scala code as you practice, these tools are REPLs:

  • Scala REPL: Scala itself provides a built in REPL: brew install scala Now type scala on the command line. Welcome to your built in Scala REPL!

  • Ammonite: Ammonite is a more powerful REPL and runs after installation with amm in your shell. Install Ammonite with the below command:

sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/lihaoyi/Ammonite/releases/download/1.7.1/2.13-1.7.1) > /usr/local/bin/amm && chmod +x /usr/local/bin/amm' && amm

Now you're ready to learn Scala with the resources below:


Recommended Reading:

Category Theory in Scala

https://github.com/hmemcpy/milewski-ctfp-pdf/releases/download/v1.3.0/category-theory-for-programmers-scala.pdf

Functional Database Layer: Doobie

https://tpolecat.github.io/doobie/docs/01-Introduction.html