https://github.com/balmungsan/scala-functional-programming-tutorial
Functional Programming in Scala Tutorial
https://github.com/balmungsan/scala-functional-programming-tutorial
cats cats-effect circe fp fs2 functional-programming http4s scala shapeless tutorial
Last synced: 6 months ago
JSON representation
Functional Programming in Scala Tutorial
- Host: GitHub
- URL: https://github.com/balmungsan/scala-functional-programming-tutorial
- Owner: BalmungSan
- License: mit
- Created: 2018-11-30T23:37:47.000Z (almost 7 years ago)
- Default Branch: 2024
- Last Pushed: 2025-03-26T20:25:12.000Z (7 months ago)
- Last Synced: 2025-03-27T11:13:42.202Z (6 months ago)
- Topics: cats, cats-effect, circe, fp, fs2, functional-programming, http4s, scala, shapeless, tutorial
- Language: Scala
- Homepage:
- Size: 146 KB
- Stars: 32
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Functional Programming in Scala Tutorial
This repo contains the notes of the functional programming hotbed of research of the _Universidad **EAFIT**_.
This is intended to be a simple introductory tutorial to **Scala** in general and to Functional Programming
_(using the [Typelevel stack](https://typelevel.org/projects))_ in it.-----
> This is the new `2024` version of this course.
> The original version of it can be found on the [`2019` branch](https://github.com/BalmungSan/scala-functional-programming-tutorial/tree/2019).-----
## Contents
1. `scalaintro` This package contains notes for introduction to the **Scala** Programming Language.
1. `Expressions.scala` - Expressions and Values.
2. `ClassesMethodsFunctions` - Classes, Methods, and Functions. As well as an introduction to ADTs, `Option`, `Either`, and `Try`.
3. `Collections` - Introduction to basic collection types: `List`, `Array`, `ArraySeq`, `Vector`, `Set`, and `Map`.
4. `Combinators` - Introduction to common combinators: `sum`, `contains`, `find`, `exists`, `forall`, `filter`, `map`, `collect`, `collectFirst`, `flatMap`, `foldLeft`, `foldRight`, `groupMapReduce`; and implement them for `List` using recursion or other combinators.
5. `Typeclasses` - Brief showcase of typeclasses and **cats**.## Bibliography
The following is a list of bibliographic material used for this tutorial.
+ Underscore - **Scala with Cats**, Book. https://underscore.io/books/scala-with-cats
+ Underscore - **Playing type tetris**, Blog. https://underscore.io/blog/posts/2017/04/11/type-tetris.html
+ Typelevel - **There are more types than classes**. https://typelevel.org/blog/2017/02/13/more-types-than-classes.html
+ Typelevel - **Cats**, Website. https://typelevel.org/cats
+ Typelevel - **Cats Effect**, Website. https://typelevel.org/cats-effect
+ Fabio Labella _(SystemFw)_- **Programs as Values**, Blog. https://systemfw.org/archive.html
+ Rob Norris _(tpolecat)_ - **Functional Programming with Effects**, Conference talk. https://slideslive.com/38908886/functional-programming-with-effects
+ Rob Norris _(tpolecat)_ - **Introduction to Typeclasses in Scala**, Blog. https://tpolecat.github.io/2013/10/12/typeclass.html
+ Gavin Bisesi _(Daenyth)_ - **Intro to Cats-Effect**, Conference talk. https://github.com/daenyth/intro-cats-effect
+ Ryan Peters _(sloshy)_- **Streams - Your New Favorite Primitive**, Conference talk. https://www.youtube.com/watch?v=BZ8O6T7Y1UE
+ DevInsideYou - **Monads**, Youtube playlist. https://www.youtube.com/playlist?list=PLJGDHERh23x-9bxGrCbyX-tXJG99XczNC
+ Philip Schwarz - **The Monad Fact Slide Deck Series**, Slides. https://www.slideshare.net/pjschwarz/the-monad-fact-slide-deck-series-229474965
+ Scala Lang - **Tour of Scala**, Docs. https://docs.scala-lang.org/tour/tour-of-scala.html
+ Scala Lang - **Where Does Scala Look For Implicits?**, Docs. https://docs.scala-lang.org/tutorials/FAQ/index.html#where-does-scala-look-for-implicits
+ Scala Lang - **What’s the difference between methods and functions?**, Docs. https://docs.scala-lang.org/tutorials/FAQ/index.html#whats-the-difference-between-methods-and-functions
+ Scala Lang - **Scala Standard Library - API**, Scaladoc. https://scala-lang.org/api/3.3_LTS/
+ Luis Miguel Mejía Suárez _(BalmungSan)_ - **Polymorphism in Scala**. https://gist.github.com/BalmungSan/c19557030181c0dc36533f3de7d7abf4
+ Scala Community - **A relaxed chat room about all things Scala**, Discord Channel. https://discord.com/invite/scala