/scala-3-beginners

The official repository for the Scala 3 & Functional Programming Essentials course

Primary LanguageScala

The official repository for the Scala 3 & FP Essentials course

Powered by Rock the JVM!

This repository contains the code we wrote during Rock the JVM's Scala 3 & FP Essentials course. Unless explicitly mentioned, the code in this repository is exactly what was caught on camera.

Installation

How to install:

  • either clone the repo or download as zip
  • open with IntelliJ as it's a simple IDEA project

Getting Started

Run this command in a git terminal to reset the code in its starting/clean state:

git checkout start

This repo also has Git tags for intermediate states of the code while we were working in the course. You can check out the appropriate tags for the different stages of the course. Useful especially for longer exercises where we modify the same code over multiple videos.

The tags are:

  • start
  • 1.1-values-types
  • 1.2-expressions
  • 1.3-functions
  • 1.5-recursion
  • 1.6-cbn-cbv
  • 1.7-default-args
  • 1.8-string-ops
  • 2.1-oo-basics
  • 2.2-oo-basics-exercises
  • 2.3-method-notations
  • 2.4-inheritance
  • 2.5-access-modifiers
  • 2.6-preventing-inheritance
  • 2.7-objects
  • 2.8-abstract-classes-traits
  • 2.9-list-part-1
  • 2.10-generics
  • 2.11-anonymous-classes
  • 2.12-list-part-2
  • 2.13-case-classes
  • 2.14-enums
  • 2.15-exceptions
  • 2.16-imports-exports
  • 3.1-what-a-function-is
  • 3.2-anonymous-functions
  • 3.3-hofs-currying
  • 3.4-hofs-currying-exercises
  • 3.6-map-flatmap-filter-for
  • 3.7-linear-collections
  • 3.8-tuples-maps
  • 3.9-tuples-maps-exercises
  • 3.10-option
  • 3.11-try
  • 4.1-pattern-matching
  • 4.2-all-the-patterns
  • 4.3-pattern-matching-everywhere
  • 4.4-braceless-syntax

Contributions

If you have changes to suggest to this repo, either

  • submit a GitHub issue
  • tell me in the course Q/A forum
  • submit a pull request!