satishThakur / functional-programming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Functional Programming in Scala

Objectives

This repository contains Functional Programming notes/learning and code examples in my journey to learn functional programming. We would use typelevel ecosystem specifically:

  • Cats - A library which provides abstraction for Functional Programming in Scala. Cats library implements multiple TypeClasses and instances such as Monoid, functor, Monad, Applicative etc. It also implements multiple data types and structures.
  • Cats-effect - Library which provides implementation of IO Monad and provides building blocks to write concurrent, parallel and scalable applications.

Assumptions

As this repository and code would be in Scala working knowledge of Scala is assumed.

Core Concepts

Cats

Important TypeClasses:

Cats-effect

  • [IO Monad]
  • [Resource]
  • [Supervisor]
  • [Fiber]
  • [Ref and Defer]
  • [TypeClasses]

Sample Application

REST API Based Micro Service

References

Books

  • Functional Programming in Scala

Other Resources

todo add lambda calculus C C todo - add l

About

License:MIT License


Languages

Language:Scala 100.0%