Skip to content

Training program from beginner to expert level

License

Notifications You must be signed in to change notification settings

rohinp/fp-scala

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fp-scala

Training program from beginner to expert level

An expected table of content will edit in future as and when I add more code/exercises/tutorials

  1. Environment setup
  2. FP introduction
  3. ADT (algebraic data types) to manage state
    1. Type vs values
    2. Data Types
    3. Case classes, trait, and object.
    4. Smart constructors
    5. Domain modeling using ADT
    6. Pattern matching
  4. Functions in scala (methods, functions and eta reduction) to add behaviours
    1. Function curry
    2. Partial application
    3. Partial functions
    4. Higher order functions
    5. Combinators
    6. Function composition
    7. Pure functions
    8. Function as data
    9. Recursion in functions
    10. Writing Lazy evaluated code
  5. Type level and Type system basics
    1. Variance
    2. Phantom Types
    3. Existential Types
    4. Type lambda and kind projector
    5. GADT
  6. Data structures in scala (collections)
    1. List
    2. Vectors
    3. Folding on List
    4. Amortized analysis of algorithm an intro
  7. Scala with cats
    1. Type classes
    2. Monoids and semigroups
    3. Functors
    4. Monads
    5. Monad Transformers
    6. Semigroupal and applicative
    7. Foldable and Traverse
  8. Effect system and more
    1. Concurrency basics and Future in scala.
    2. Intro to cats effects IO
      1. Will add more topics here as we are still learning and using it I projects like MVars, ref and concurrency from cats effects
    3. Concurrency with green threads
    4. Best practices for thread pools in production application (JVM)
  9. Tagless Initial, sample project
  10. Tagless Final, sample project
  11. Stream processing using FS2
    1. Stream basics
    2. Concurrency primitives by FS2

Use full links

  1. GLOSSARY
  2. scala-book
  3. scala language reference

About

Training program from beginner to expert level

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages